如何解决Flutter:从现有列表中填充 ListView.builder,每行 2 个小部件
到目前为止,我通过从 ListView.builder
获取数据使我的 List<MyCustomWidget> customs
每行显示 2 个小部件失败了。
我的列表就像:
Class CustomWidgetData extends changeNotifier {
List<CustomWidget> customs = [
CustomWidget(
icon: Icons.add,iconColor: Colors.green,),];
}
我的 ListView.builder 就像:
class CustomWidgetListBuilder extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<CustomWidgetData>(
builder: (context,customWidgetData,child) {
return Expanded(
child: ListView.builder(
itemBuilder: (context,index){
final customWidget = customWidgetData.customs[index];
return Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,children: [
Expanded(
child: CustomWidget(
icon:customWidget.icon,iconColor: customWidget.iconColor,//CustomWidget
),//Expanded
],);//Row
},itemCount: customWidgetData.customs.lenght,//ListView.builder
); //Expanded
},);//Consumer
}
}
在第一张图片中,我只在 ListView.builder 的行内添加了其他 Expanded->CustomWidget,但它重复了所有列表,我想要:
1|2
3|4
5|6
...
解决方法
Listview 不适合这个用例。还有另一个名为 GridView 的小部件,它可以生成您想要的网格。
GridView.builder(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: 200,childAspectRatio: 3 / 2,crossAxisSpacing: 20,mainAxisSpacing: 20),itemCount: customWidgetData.customs.length,itemBuilder: (BuildContext context,int index) {
return Container();
}),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。