在Flutter 中,GridView 是一个展示数据网格的滚动小部件,类似于表格视图,其中子控件被组织成行和列。它非常适合于展示图像网格、小部件集合等。GridView 同样支持懒加载,这意味着只有当内容进入视口时才会被构建。 回到顶部 一、基本用法 GridView 最基本的用法是包裹一个网格项的集合: GridView( gridDelegate: SliverG...
另外一个GridView的构造函数叫做GridView.builder,这个构造函数和默认的构造函数的区别在于childrenDelegate的实现不同,我们来看下GridView.builder中childrenDelegate的实现: childrenDelegate=SliverChildBuilderDelegate(itemBuilder,childCount:itemCount,addAutomaticKeepAlives:addAutomaticKeepAlives,addRepaintBoundaries:addRepaint...
gridDelegate: gridDelegate, ); } 这里GridView返回了一个SliverGrid,这个SliverGrid中有两个属性,分别是childrenDelegate和gridDelegate。 其中gridDelegate是一个SliverGridDelegate的实例,用来控制子组件在GridView中的布局。 childrenDelegate是一个SliverChildDelegate的实例,用来生成GridView中的子组件。 这两个属性在GridVi...
required SliverGridDelegate gridDelegate, required IndexedWidgetBuilder itemBuilder, ) class MyGridView5 extends StatefulWidget { @override State<MyGridView5> createState() => MyGridView5State(); } class MyGridView5State extends State<MyGridView5> { List<IconData> _icons = []; //保存Icon数据 @...
接下来的构造函数叫做GridView.custom,因为叫做custom,所以这个构造函数的SliverGridDelegate和SliverChildDelegate都是可以自定义的,也就是说这两个参数都可以从外部传入,所以这两个参数都是必须的: required this.gridDelegate, required this.childrenDelegate
GridView.extent的使用,需要传的是double类型的参数,也就是创建横轴上最大可容纳的item,maxCrossAxisExtent表示横轴item的最大宽度; 3、GridView.builder(@required this.gridDelegate,@required IndexedWidgetBuilder itemBuilder) 适用于widget数量多的时候,通过GridView.builder的使用,动态的创建widget,itemBuilder表示子widg...
#2、GridView.builder() 使用GridView 命名构造函数builder()创建的网格会按需创建加载 item, 适用于有大量的数据展示场景, 常见参数有: gridDelegate: 网格代理, 用于控制子 widget 在 GridView 中的摆放, 类型是 SliverGridDelegate, 常用子类有: SliverGridDelegateWithFixedCrossAxisCount ...
这里GridView返回了一个SliverGrid,这个SliverGrid中有两个属性,分别是childrenDelegate和gridDelegate。 其中gridDelegate是一个SliverGridDelegate的实例,用来控制子组件在GridView中的布局。 childrenDelegate是一个SliverChildDelegate的实例,用来生成GridView中的子组件。 这两个属性在GridView的构造函数中有使用,我们接下来会...
GridView.builder(gridDelegate:SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount:2,mainAxisSpacing:10.0,crossAxisSpacing:10.0,),itemCount:yourData.length,// 数据源的长度itemBuilder:(BuildContextcontext,int index){returnContainer(color:Colors.blue,child:Center(child:Text('Item$index')),);},) ...
这里GridView返回了一个SliverGrid,这个SliverGrid中有两个属性,分别是childrenDelegate和gridDelegate。 其中gridDelegate是一个SliverGridDelegate的实例,用来控制子组件在GridView中的布局。 childrenDelegate是一个SliverChildDelegate的实例,用来生成GridView中的子组件。