Open chenjiangmin opened 6 months ago
长图。建议初始化缩放比例,到刚好宽度匹配
我用physics: const NeverScrollableScrollPhysics(), 禁止他滑动,然后使用
Container( color: Colors.transparent, // 若出现很长的图片在放大过程中容易左右滑动,解决自定义手势 child: GestureDetector( onHorizontalDragStart: (DragStartDetails details) { _startX = details.localPosition.dx; }, onHorizontalDragUpdate: (DragUpdateDetails details) { _dragDistance = details.localPosition.dx - _startX; }, onHorizontalDragEnd: (DragEndDetails details) { double screenWidth = MediaQuery.of(context).size.width; if (_dragDistance.abs() > screenWidth * 0.25) { if (_dragDistance > 0) { // 向右滑动 if (currentIndex > 0) { pageController.previousPage( duration: const Duration(milliseconds: 300), curve: Curves.easeInOut, ); } } else if (_dragDistance < 0) { // 向左滑动 if (currentIndex < widget.images.length - 1) { pageController.nextPage( duration: const Duration(milliseconds: 300), curve: Curves.easeInOut, ); } } } _dragDistance = 0.0; // 重置拖动距离 }, child: ExtendedImageGesturePageView.builder(
这控制手指滑动到0.25的屏幕宽度的时候再进行换页面
Version
8.2.0
Platforms
Android, iOS
Device Model
Iphone 11(ios 16) Iphone 15(ios 17) oppo(android 13)
flutter info
How to reproduce?
我使用ExtendedImageGesturePageView 做图片预览功能
中间这个图是长图。 当我想上下滑动长图浏览的时候, 很容易触发左右滑动 到上一张图、或者下一张图。
Logs
Example code (optional)