Flutter GridView常用属性、
4种使用方式的区别
GridView()、GridView.count()、GridView.extent() 这三种和GridView.builder()的区别在于:
- GridView都需要一个Widget数组作为其子元素,前三种方式都会提前将所有子widget都构建好,所以只适用于子Widget数量比较少
- 当子widget比较多时,我们可以通过GridView.builder来动态创建子Widget。
常用属性
属性名 | 功能 | 值所属类型 |
---|---|---|
scrollDirection | 滚动方法 | Axis |
padding | 内边距 | EdgeInsetsGeometry |
resolve | 组件反向排序 | bool |
crossAxisSpancing | 水平子Widget之间间距 | double |
mainAxisSpancing | 垂直子Widget 之间间距 | double |
crossAxisCount | 一行Widget的数量 | int |
childAspectRatio | 子widget的宽高比例 | double |
children | [] | 子控件 |
gridDelegate | 一个控制 GridView 中子项布局的委托。 | |
itemBuilder | 遍历数返回Widget | widget |
itemCount 子控件数量 | int | |
controller | 滚动控制(滚动监听) | |
primary | 如果内容不足,则用户无法滚动 而如果[primary]为true,它们总是可以尝试滚动。 | |
physics | 滑动类型设置 | |
AlwaysScrollableScrollPhysics() | 总是可以滑动 | |
NeverScrollableScrollPhysics | 禁止滚动 | |
BouncingScrollPhysics | 内容超过一屏 上拉有回弹效果 | |
ClampingScrollPhysics | 包裹内容 不会有回弹 |
GridView 创建网格列表有多种方式,常用有以下两种。
1、可以通过 GridView.count 实现网格布局
2、通过 GridView.builder 实现网格布局