经常因为需要在listView中 嵌套 gridView 来创建二维布局的元素,如图,

但是gridView自带滚动属性,使得页面无法随着listview滚动,所以我们需要禁用 gridView的滚动属性。
所有滚动组件 都有一个叫physics的属性。只要我们增加如下代码:
physics: new NeverScrollableScrollPhysics(),
完整代码:
new GridView.count( physics: new NeverScrollableScrollPhysics(), crossAxisCount: (orientation == Orientation.portrait) ? 3 : 4, mainAxisSpacing: 20.0, crossAxisSpacing: 4.0, padding: const EdgeInsets.all(4.0), childAspectRatio: (orientation == Orientation.portrait) ? 1.0 : 1.3, children: photos.map((Photo photo) { return new GridDemoPhotoItem( photo: photo, onBannerTap: (Photo photo) { setState(() { photo.isFavorite = !photo.isFavorite; }); } ); }).toList(), );
本文介绍如何在Flutter中解决listView嵌套gridView时因gridView自带滚动属性导致页面无法随listView滚动的问题。通过设置physics属性为NeverScrollableScrollPhysics,可以有效禁用gridView的滚动,实现页面正常滚动。
599

被折叠的 条评论
为什么被折叠?



