我有一个PageView.builder
内一个StatelessWidget
。每个页面都有一个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);
},