如何从 GridView 中删除内部滚动条?
How can I remove the inner scroll from a GridView?
我正在尝试让 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}/',
),
);
}),
),
)
]
)
有嵌套滚动小部件,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),
),
],
);
}
您可以根据需要自定义,更改顺序或它,项目数量等
我正在尝试让 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}/',
),
);
}),
),
)
]
)
有嵌套滚动小部件,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),
),
],
);
}
您可以根据需要自定义,更改顺序或它,项目数量等