小编Fra*_*rri的帖子

Flutter - PageView - 仅当您在特定组件顶部而不是页面的任何位置上滑动时才滚动

对 flutter 完全陌生,不到 10 小时。

我有一个 PageView 处理 3 个页面,它可以完美地水平滚动它们。

但我想更改“允许滑动”区域。我不想让用户更改从页面的任何位置滚动的页面,而是,例如,如果他在 AppBar 组件上滑动,则让他滚动页面。

我看到 PageView 有 applyTo 方法,我只是不知道如何给它 ID(键)或 appBar 来看看这是否有效。

有没有办法实现“仅当用户在组件 X 上滑动时才滚动”?


编辑1

Alberto Miola建议的解决方案就像一个魅力,这是我的代码(我必须从 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);
}
Run Code Online (Sandbox Code Playgroud)

scroll flutter flutter-pageview

0
推荐指数
1
解决办法
3490
查看次数

标签 统计

flutter ×1

flutter-pageview ×1

scroll ×1