我有一个应用程序使用 aGridView来尝试布置一些Cards。相关代码看起来有点像这样
body: new GridView.count(
crossAxisCount: 2,
children: [new Card(
child: new Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
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( // make buttons use the appropriate styles for cards
child: new ButtonBar(
children: <Widget>[
new FlatButton(
child: const Text('CALL TO ACTION'),
onPressed: () {
/* ... */
},
),
],
),
),
],
),
),
// same card repeated
],
),
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不能很好地呈现:
卡片太高,它们应该在“CALL TO ACTION”按钮下方结束。我该如何解决这个问题,并使网格行自动尊重内容的高度?
您的问题是瓷砖的GridView.count默认纵横比为1.0(即正方形),听起来您希望您的瓷砖比这更短。
快速解决方法是将 硬编码为childAspectRatio您喜欢的数字。一种更细致入微的方法是实现SliverGridDelegate描述您想要和使用的布局的GridView.custom。你也可以只做一个ListView2 元素Row小部件而不使用GridView。
| 归档时间: |
|
| 查看次数: |
3415 次 |
| 最近记录: |