GridView 详解

一、主要参数:

属性类型说明
scrollDirectionAxis滚动方法
paddingEdgeInsetsGeometry内边距
resolvebool组件反向排序
crossAxisSpacingdouble水平子 Widget 之间间距
mainAxisSpacingdouble垂直子 Widget 之间间距
crossAxisCountint一行的 Widget 数量
childAspectRatiodouble子 Widget 宽高比例
children<Widget>[ ]
gridDelegateSliverGridDelegateWithFixedCrossAxisCount(常用)控制布局主要用在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
		)
	);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值