经常因为需要在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(), );