GridView 列表组件 以及动态 GridView

Posted zhaofeis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GridView 列表组件 以及动态 GridView相关的知识,希望对你有一定的参考价值。

 
 
技术图片

 

1、通过 GridView.builder 实现网格布局

Widget getList(context, index) {
return Container(
margin: EdgeInsets.fromLTRB(0, 0, 0, 10),
padding: EdgeInsets.all(10),
child: Column(
children: <Widget>[
Image.network(
listData[index][‘imageUrl‘],
fit: BoxFit.cover,
),
SizedBox(height: 5),
Text(
listData[index][‘title‘],
style: TextStyle(
fontSize: 14
),
overflow: TextOverflow.ellipsis,
)
],
),
decoration: BoxDecoration(
border: Border.all(
width: 1,
color: Colors.black12
)
),
);
}
Widget build(BuildContext context) {
// TODO: implement build
return Container(
padding: EdgeInsets.all(10),
child: GridView.builder(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
crossAxisSpacing: 10,
),
itemCount: listData.length,
itemBuilder: getList,
)
);
}

2、可以通过 GridView.count 实现网格布局

getList() {
var tempList = listData.map((val) {
return Container(
margin: EdgeInsets.fromLTRB(0, 0, 0, 10),
padding: EdgeInsets.all(10),
child: Column(
children: <Widget>[
Image.network(
val[‘imageUrl‘],
fit: BoxFit.cover,
),
SizedBox(height: 5),
Text(
val[‘title‘],
style: TextStyle(
fontSize: 14,
color: Colors.red
),
overflow: TextOverflow.ellipsis,
)
],
),
decoration: BoxDecoration(
border: Border.all(
width: 1,
color: Colors.black12
)
),
);
});
return tempList.toList();
}
Widget build(BuildContext context) {
// TODO: implement build
return GridView.count(
padding: EdgeInsets.all(10),
crossAxisCount: 2,
crossAxisSpacing: 10,
children: getList(),
);
}

以上是关于GridView 列表组件 以及动态 GridView的主要内容,如果未能解决你的问题,请参考以下文章

Flutter学习基本组件之基本列表Gradview组件

PostBack 期间 GridView.DataSource 为空

Flutter 中的动态 GridView 列表 UI

如何在 GridView 内的 ListViewItemPresenter 中更改 SelectedBackground

脚本完成时如何防止关闭 out-gridview

如何在颤动中减小gridview.builder的gridview项之间的空间大小