【发布时间】:2020-08-21 21:50:12
【问题描述】:
我在StatelessWidget 中有一个PageView.builder。每个页面都有一个SwipeGestureRecognizer,它提供了一个Navigator.pop(context) onSwipeDown。但我希望此手势仅在用户滚动回initialPage: 0 时触发。对于其余页面,我想要PageView.builder 提供的默认滚动。除了SwipeGestureRecognizer 的存在似乎禁用了所有其他页面上PageViewer 的正常向下滑动默认滚动之外,我已经设法让它几乎正常工作。如何让向下滑动手势仅在第一页上激活?
class StageBuilder extends StatelessWidget {
final List<SpeakContent> speakcrafts;
StageBuilder(this.speakcrafts);
final PageController controller = PageController(initialPage: 0);
@override
Widget build(context) {
return PageView.builder(
controller: controller,
itemCount: speakcrafts.length,
itemBuilder: (context, int currentIndex) {
return createViewItem(speakcrafts[currentIndex], context, currentIndex);
},
);
}
Widget createViewItem(SpeakContent speakcraft, BuildContext context, int currentIndex) {
return (
Container(
child: SwipeGestureRecognizer(some stuff)
),
);
}
}
onSwipeDown:() {
if (currentIndex==0)
Navigator.pop(context);
},
【问题讨论】:
标签: flutter dart swipe-gesture flutter-pageview