GridView组件的常用参数:
名称 | 类型 | 说明 |
scrollDirection
|
Axis
|
滚动方法
|
padding |
EdgeInsetsGeometry
|
内边距
|
resolve
|
bool
|
组件反向排序
|
crossAxisSpacing
|
double
|
水平子 Widget 之间间距
|
mainAxisSpacing
|
double
|
垂直子 Widget 之间间距
|
crossAxisCount
|
int
|
一行的 Widget 数量
|
childAspectRatio
|
double
|
子 Widget 宽高比例
|
children
|
<Widget>[]
|
|
gridDelegate
|
SliverGridDelegateWithFix
edCrossAxisCount(常用)
SliverGridDelegateWithMax
CrossAxisExtent
|
控制布局主要用在
GridView.builder 里面
|
GridView.count实现静态网格布局
import 'package:flutter/material.dart'; void main(){
runApp(MaterialApp(
title: "GridView",
home: MyApp(),
));
} class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: GridView.count(
crossAxisCount: 2,
mainAxisSpacing: 10.0,
crossAxisSpacing: 10.0,
padding: EdgeInsets.all(5.0),
children: <Widget>[
Container(
color: Colors.pink,
),
Container(
color: Colors.pink,
),
Container(
color: Colors.pink,
),
Container(
color: Colors.pink,
),
Container(
color: Colors.pink,
),
Container(
color: Colors.pink,
),
Container(
color: Colors.pink,
),
Container(
color: Colors.pink,
),
],
),
);
}
}
GridView.builder实现动态网格列表
import 'package:flutter/material.dart'; void main(){
runApp(MaterialApp(
title: "GridView",
home: MyApp(),
));
} class MyApp extends StatelessWidget {
List list = new List<String>();
MyApp() {
for(var i = 0; i < 9; i++) {
this.list.add("图片$i");
}
} @override
Widget build(BuildContext context) {
return Scaffold(
body: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( // 注意,使用了GridView.builder,又要设置网格属性的话,要用这个属性!
crossAxisCount: 3,
mainAxisSpacing: 10.0,
crossAxisSpacing: 10.0,
),
itemCount: this.list.length,
itemBuilder: (context,index) {
return Container(
color: Colors.pink,
child: Center(
child: Text(this.list[index]),
)
);
}
)
);
}
}