如何从GridView中删除内部滚动?

时间:2019-06-26 23:37:35

标签: android ios gridview flutter dart

我正在尝试使用一个单滚动的ListView。我希望能够向下滚动并查看每个小部件。目前,我在GridView之前有多个小部件。问题在于GridView有其自己的滚动。我想要的一个很好的例子是类似于Instagram个人资料页面。当您在Instagram个人资料页面中向下滚动时,每个元素都会向下滚动。没有嵌套的滚动。

这是我当前的代码:

body: ListView(
children: <Widget>[
  ...
  ...
Container(
  child: GridView.count(
           crossAxisCount: 3,
           shrinkWrap: true,
           children: List.generate(100, (index) {
                  return Container(
                           alignment: Alignment.center,
                           margin: EdgeInsets.all(3.0),
                           height: MediaQuery.of(context).size.height,
                           child: FadeInImage.memoryNetwork(
                           placeholder: kTransparentImage,
                          image:'https://picsum.photos/${300}/${300}/',
                      ),
                    );
                  }),
                ),
              )
    ]
)

1 个答案:

答案 0 :(得分:0)

有嵌套滚动小部件,CustomScrollView可以使Slivers达到您想要的目的。 SliverGrid和SliverList是实现目标所需要的:

Widget sliverScroll() {
    return CustomScrollView(
      slivers: <Widget>[
        SliverGrid(
          delegate: SliverChildBuilderDelegate((context, index) {
            return Container();
          }, childCount: 9),
          gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3),
        ),
        SliverList(
          delegate: SliverChildBuilderDelegate((context, index) {
            return Container();
          }, childCount: 6),
        ),
      ],
    );
  }

您可以根据需要进行自定义,更改订单或其顺序,项目数量等