GridView中包含卡片的高度计算不正确。
GridView中包含卡片的高度计算不正确。
我有一个使用GridView
来布局一些Card
的应用程序。相关的代码看起来有点像这样:
body: new GridView.count(
crossAxisCount: 2,
children: [new Card(
child: new Column(
mainAxisSize: MainAxisSize.min,
children:
const ListTile(
leading: const Text("0", style: const TextStyle(
fontWeight: FontWeight.bold, fontSize: 24.0)),
title: const Text('Some Heading'),
subtitle: const Text('My Subtitle'),
),
new ButtonTheme
.bar( // 使按钮使用适当的卡片样式
child: new ButtonBar(
children:
new FlatButton(
child: const Text('CALL TO ACTION'),
onPressed: () {
/* ... */
},
),
],
),
),
],
),
),
// 重复相同的卡片
],
),
很不幸,它的渲染效果不好:
卡片太高了,它们应该在"CALL TO ACTION"按钮的下方结束。我该如何修复这个问题,让网格行自动适应内容的高度?
你的问题是GridView.count
的瓷砖具有默认的宽高比1.0
(即正方形),听起来你希望瓷砖的高度比这个要短。
一个快速的解决方法是将childAspectRatio
硬编码为你喜欢的数字。更细致的方法是实现一个描述你想要的布局的SliverGridDelegate
并使用GridView.custom
。你也可以只使用2个元素的Row
小部件的ListView
,而不使用GridView
。
你能否展示一些代码,展示如何实现每个子项的可变高度?
这是一个基本的要求。我想知道为什么它需要这么复杂,不能通过GridView.count(...)
来考虑。
- Collin Jackson 我需要以1:1(宽:高)的比例显示网格,但高度应该额外增加100像素。例如,我该如何做?请给予建议。谢谢。