Flutter PhotoView组件拖拽手势失效问题求助
问题:PhotoView拖拽手势成功率极低,缩放功能正常
我是Flutter移动端开发者,尝试用photo_view包实现离线地图功能。测试时缩放功能基本正常,但拖拽图片的成功率不足10%,以下是我的实现代码:
class OfflineMapWidget extends StatefulWidget { final Session session; final bool connectedToNetwork; const OfflineMapWidget( {Key? key, required this.session, required this.connectedToNetwork}) : super(key: key); @override _OfflineMapWidgetState createState() => _OfflineMapWidgetState(); } class _OfflineMapWidgetState extends State<OfflineMapWidget> { @override Widget build(BuildContext context) { return Container( color: Colors.black, child: SafeArea( child: Theme( data: ThemeData( brightness: Brightness.dark, appBarTheme: AppBarTheme( backgroundColor: Color.fromARGB(255, 65, 116, 131))), child: Scaffold( appBar: AppBar( leading: MenuWidget(), actions: [widget.connectedToNetwork ? QrPaymentButton(session: widget.session) : Container()], ), body: Container( height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, color: Colors.white, child: PhotoView( imageProvider: AssetImage('assets/images/offline_map.png'), ), ), ), ), ), ); } }
问题定位与解决方案
已排查出问题根源:该组件嵌套在ZoomDrawer包中,两者的拖拽手势发生冲突,导致PhotoView的拖拽操作成功率极低。
解决方案有两种:
- 全局禁用ZoomDrawer的拖拽手势:设置ZoomDrawer的
disableDragGesture属性为true - 局部按需禁用:仅在
OfflineMapWidget页面显示时禁用ZoomDrawer的拖拽手势,页面退出后恢复原有设置
内容的提问来源于stack exchange,提问作者Bence Kovács
相关产品推荐
相关产品推荐

