Совершенно новый для флаттера, менее 10 часов на нем.
У меня есть PageView, обрабатывающий 3 страницы, он отлично прокручивает их по горизонтали.
Но я бы хотел изменить "разрешено" проведите пальцем по области. Я не хочу позволять пользователю изменять страницы, прокручиваемые с любой позиции страницы, но вместо этого, например, просто позволяю ему прокручивать страницы, если он, например, проводит по компоненту AppBar.
Я видел у PageView есть метод applyTo, я просто не знаю, как дать ему идентификатор (ключи) или appBar, чтобы посмотреть, сработает ли это.
Есть ли способ добиться этого «только прокрутите, если пользователь проводит по компоненту X "?
Изменить 1
Решение, предложенное Альберто Миола , работает как шарм, вот мой код (мне пришлось реализовать из PreferredSizeWidget поскольку требуется для изменения AppBar).
class GestureDetectorForAppBar extends StatelessWidget implements PreferredSizeWidget {
final double height;
final AppBar appbar;
final GestureDragUpdateCallback onPanUpdate;
GestureDetectorForAppBar({
Key key,
this.appbar,
this.onPanUpdate,
@required this.height,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return GestureDetector(child: this.appbar, onPanUpdate: this.onPanUpdate,);
}
@override
Size get preferredSize => Size.fromHeight(height);
}