基础的 GridView 布局
参数说明
gridDelegate对子元素进行修饰,由于SliverGridDelegate 是一个抽象类, 找它的实现类有 【SliverGridDelegateWithFixedCrossAxisCount,SliverGridDelegateWithMaxCrossAxisExtent,】childAspectRatio子元素列表
SliverGridDelegateWithFixedCrossAxisCount方法说明
crossAxisCount设置一行几列childAspectRatio设置每子元素的大小(宽高比)crossAxisSpacing元素的左右的 距离mainAxisSpacing子元素上下的 距离
class GridWidget extends StatelessWidget
{
@override
Widget
build(BuildContext context
) {
return Container(
height
: 200,
child
: GridView(
gridDelegate
: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount
: 4,
childAspectRatio
: 1.8,
crossAxisSpacing
: 20,
mainAxisSpacing
: 10,
),
children
: [
Container(
color
: Colors
.red
,
child
: Icon(Icons
.keyboard
),
),
Container(
color
: Colors
.pink
,
child
: Icon(Icons
.add
),
),
Container(
color
: Colors
.green
,
child
: Icon(Icons
.home
),
),
Container(
color
: Colors
.blue
,
child
: Icon(Icons
.add
),
),
Container(
color
: Colors
.orange
,
child
: Icon(Icons
.home
),
),
],
),
);
}
}
SliverGridDelegateWithMaxCrossAxisExtent方法说明
maxCrossAxisExtent每个子元素水平方向上的宽度childAspectRatio设置每子元素的大小(宽高比)crossAxisSpacing元素的左右的 距离mainAxisSpacing子元素上下的 距离
class GridWidget extends StatelessWidget
{
@override
Widget
build(BuildContext context
) {
return Container(
height
: 200,
child
: GridView(
gridDelegate
: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent
: 120,
childAspectRatio
: 1.8,
crossAxisSpacing
: 20,
mainAxisSpacing
: 10,
),
children
: [
Container(
color
: Colors
.red
,
child
: Icon(Icons
.keyboard
),
),
Container(
color
: Colors
.pink
,
child
: Icon(Icons
.add
),
),
Container(
color
: Colors
.green
,
child
: Icon(Icons
.home
),
),
Container(
color
: Colors
.blue
,
child
: Icon(Icons
.add
),
),
Container(
color
: Colors
.orange
,
child
: Icon(Icons
.home
),
),
],
),
);
}
}