标题是我想要实现的目标的简化版本:一个 GridView,它根据我提供的原型网格项自动设置行高。原型项目是最高的可能项目,例如,如果网格项目包含文本,则原型将包含最长的可能文本。
一种可能的解决方法是使用 ListView,其中每一行都包含在 IntrinsicHeight 小部件中。但:
据我了解,您想要动态设置 GridView 项目的大小。有两种方法,手动计算并根据您的内容每次设置,或者使用SliverGridDelegateWithMaxCrossAxisExtent。因此,在GridView.builder中,您可以添加以下属性:
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent:
200.0, // maximum size of item (on small screens 1 item per row, on bigger as many as can fit with 200.0 px width)
childAspectRatio: 5 / 6,
crossAxisSpacing: 20,
mainAxisSpacing: 20,
),
Run Code Online (Sandbox Code Playgroud)
它使您可以访问额外的工具来管理保持宽高比的 GridView 项目,它还具有不应超过的最大尺寸
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |