【发布时间】:2021-03-26 06:56:12
【问题描述】:
我有一个带有动态高度项的 ListView。每个项目都是一个包含 3 个元素的行:文本、列、列。 ListView 看起来像这样:
这是我的项目小部件的代码:
class ItemWidget extends StatelessWidget {
final ItemViewModel model;
const ItemWidget({Key key, @required this.model}) : super(key: key);
@override
Widget build(BuildContext context) {
return Row(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(width: 16),
Text(
model.typeLabel,
),
SizedBox(width: 8),
Expanded(
flex: 6,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
SizedBox(height: 4),
Text(
'Volume:',
textAlign: TextAlign.end,
),
SizedBox(height: 2),
Text(
model.volume,
textAlign: TextAlign.end,
),
SizedBox(height: 4),
Text(
'Filled:',
textAlign: TextAlign.end,
),
SizedBox(height: 2),
Text(
model.filled,
textAlign: TextAlign.end,
),
SizedBox(height: 4)
],
),
),
SizedBox(width: 16),
Expanded(
flex: 6,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
SizedBox(height: 4),
Text(
'Price:',
textAlign: TextAlign.end,
),
SizedBox(height: 2),
Text(
model.price,
textAlign: TextAlign.end,
),
SizedBox(height: 4),
Text(
'Total:',
textAlign: TextAlign.end,
),
SizedBox(height: 2),
Text(
model.total,
textAlign: TextAlign.end,
),
SizedBox(height: 4),
Text(
'Fee:',
textAlign: TextAlign.end,
),
SizedBox(height: 2),
Text(
model.fee,
textAlign: TextAlign.end,
),
SizedBox(height: 4),
],
)),
SizedBox(width: 16),
],
);
}
}
我希望我的 Column 小部件始终保持顶部对齐,就像当行的 crossAxisAlignment 为 CrossAxisAlignment.start 时一样。同时 Text 应该居中,就像现在当 Row 的 crossAxisAlignment 为 CrossAxisAlignment.center 时一样。这是我想要的:
我怎样才能做到这一点?
感谢您的帮助。
【问题讨论】: