小言_互联网的博客

GridView 详解

289人阅读  评论(0)

一、主要参数:

属性 类型 说明
scrollDirection Axis 滚动方法
padding EdgeInsetsGeometry 内边距
resolve bool 组件反向排序
crossAxisSpacing double 水平子 Widget 之间间距
mainAxisSpacing double 垂直子 Widget 之间间距
crossAxisCount int 一行的 Widget 数量
childAspectRatio double 子 Widget 宽高比例
children <Widget>[ ]
gridDelegate SliverGridDelegateWithFixedCrossAxisCount(常用) 控制布局主要用在GridView.builder 里面

二、代码示例:
1、GridView.count 简单示例
适用场景:当子widget数量比较少时,可以快速的创建固定数量子元素的GridView

List<Widget> _listData = []; // 添加自定义 Widget 组件,如包裹的图片文字的Container容器  

@override
Widget build(BuildContext context) {
	// TODO: implement build
	return GridView.count(
		// 内边距
		padding: EdgeInsets.all(20), 
		// 横轴元素个数
		crossAxisCount: 2,
		 // 横轴间距
 		crossAxisSpacing: 20,
 		// 纵轴间距
 		mainAxisSpacing: 20,
 		// 子组件宽高长度比例
 		childAspectRatio:0.7,
 		children: _listData
 		);
}

2、GridView.builder 简单示例

**适合场景:**当子widget比较多时,可以通过GridView.builder来动态创建子widget

注意:该方法没有内边距

List<Widget> _listData = []; // 添加自定义 Widget 组件,如包裹的图片文字的Container容器  

@override
Widget build(BuildContext context) {
	// TODO: implement build
	return GridView.builder(
		// _listData 的元素个数
		itemCount: _listData.length,
		// _listData 的数据 
		itemBuilder: _listData,
		gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
			// 横轴元素个数
			crossAxisCount: 2, 
			// 纵轴间距
			mainAxisSpacing: 20.0,
			// 横轴间距
			crossAxisSpacing: 10.0,
			// 子组件宽高长度比例
			childAspectRatio: 1.0
		)
	);
}

转载:https://blog.csdn.net/xsj_blog/article/details/101380869
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场