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
              )
            )
          ]
        )
      )
    );

);
...