flutter - Flutter 具有动态宽度的水平网格视图
问题描述
我尝试过使用Flutter_staggered_grid_view,但似乎它更适合垂直滚动。
我的目标是拥有一个具有动态宽度的水平网格视图,以使网格感觉自然而不是分散开
这就是我所拥有的(我删除了一些 UI 代码,但基本相同)
GridView.builder(
scrollDirection: Axis.horizontal,
itemCount: sourceList.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2, childAspectRatio: .3),
itemBuilder: (context, i) {
final e = sourceList[i];
return Text(
e.name,
);
},
);
这就是我要找的
解决方案
这是我可以通过使用三元运算符来调整的最大值mainAxisCellCount
。您可以根据最短和最长字符串的长度调整计数。
Container(
height: 180.0,
child: StaggeredGridView.countBuilder(
crossAxisCount: 4,
itemCount: 8,
scrollDirection: Axis.horizontal,
itemBuilder: (BuildContext context, int index) => Container(
child: Center(child: Container(
padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 15.0),
child: Chip(
label: Text('${fruits[index]}', overflow: TextOverflow.visible, maxLines: 1, style: TextStyle(),)))),
),
staggeredTileBuilder: (int index) => StaggeredTile.count(2, fruits[index].length > 3 ? fruits[index].length > 8 ? fruits[index].length > 2 ? 4 : 3 : 2 : 1),
mainAxisSpacing: 0.0,
crossAxisSpacing: 0.0,
),
),
推荐阅读
- time-complexity - 我用来查找时间复杂度的方法是否正确?
- java - 使用不进化的遗传算法重建图像
- flutter - 如果我改变频道,我应该调试所有东西吗?
- python - 如何使用分类 sklearn boston 住房数据集使用 matplotlib 绘制线性图
- java - java.lang.IllegalArgumentException 与 AnnotationConfigApplicationContext
- django - 使用基于类的视图 (CBV) Django 2.1 Python 重定向页面
- reporting-services - SSRS:连接字段的不同值
- c++ - nullptr 没有打破零终止字符串的循环
- python - 使用 Python 在 Heroku 上入门时遇到问题
- php - 试图在 Laravel 脚本中获取非对象的属性“服务”