PageView 内部的 GridView 抖动
GridView inside PageView flutter
我是 Flutter 的新手,在我之前的 Android 应用程序中,我可以轻松地在另一个应用程序中以相同的方向制作任何可滚动视图,双向工作。
我想知道它是否可能在 flutter 中:在这种情况下,我在 PageView
中有一个简单的 GridView
,方向相同(垂直)。
我只是想处理 GridView
无法滚动(到达顶部)并让父级 (PageView
) 处理手势的情况。
更精确一点,在我的 Android 应用程序中,我可以简单地使用 Google class NestedScrollableHost
.
在 Android 中查看我关于此主题的其他 。
我要补充一点,这个问题的答案适用于另一个方向相同的任何可滚动视图。
谢谢!
按如下方式设置您的 Gridview 参数:
GridView(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
目前,Flutter 存储库中有关于此的正在进行的feature request。
我在这里提问时添加了 one,但是第一个有更多的赞成票,所以如果你正在看这个答案,请转到第一个 link 并赞成这个问题
使用这些属性使其正常工作。 //重要其他可选
return SafeArea(
child: Scaffold(
body: Column(
children: [
Expanded(
child: PageView.builder(
physics: const BouncingScrollPhysics(), // important
child: GridView.builder(
gridDelegate:
const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
// childAspectRatio: MediaQuery.of(context).size.width /
// (MediaQuery.of(context).size.height / 4),
mainAxisExtent: 256,
crossAxisSpacing: 1,
mainAxisSpacing: 1,
),
physics: const ClampingScrollPhysics(), // important
shrinkWrap: true,
scrollDirection: Axis.vertical,
child: YourWidget
)
)
]
)
)
);
);
...
我是 Flutter 的新手,在我之前的 Android 应用程序中,我可以轻松地在另一个应用程序中以相同的方向制作任何可滚动视图,双向工作。
我想知道它是否可能在 flutter 中:在这种情况下,我在 PageView
中有一个简单的 GridView
,方向相同(垂直)。
我只是想处理 GridView
无法滚动(到达顶部)并让父级 (PageView
) 处理手势的情况。
更精确一点,在我的 Android 应用程序中,我可以简单地使用 Google class NestedScrollableHost
.
在 Android 中查看我关于此主题的其他
我要补充一点,这个问题的答案适用于另一个方向相同的任何可滚动视图。
谢谢!
按如下方式设置您的 Gridview 参数:
GridView(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
目前,Flutter 存储库中有关于此的正在进行的feature request。
我在这里提问时添加了 one,但是第一个有更多的赞成票,所以如果你正在看这个答案,请转到第一个 link 并赞成这个问题
使用这些属性使其正常工作。 //重要其他可选
return SafeArea(
child: Scaffold(
body: Column(
children: [
Expanded(
child: PageView.builder(
physics: const BouncingScrollPhysics(), // important
child: GridView.builder(
gridDelegate:
const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
// childAspectRatio: MediaQuery.of(context).size.width /
// (MediaQuery.of(context).size.height / 4),
mainAxisExtent: 256,
crossAxisSpacing: 1,
mainAxisSpacing: 1,
),
physics: const ClampingScrollPhysics(), // important
shrinkWrap: true,
scrollDirection: Axis.vertical,
child: YourWidget
)
)
]
)
)
);
);
...