У меня 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);
},