【发布时间】:2019-03-21 00:46:16
【问题描述】:
我想要一个有 3 张卡片的屏幕。 一张卡片是 CotrolWidget(顶部固定高度),第二张卡片是 MeasurementsList(顶部下方,应垂直填充),第三张卡片是 ChartWidget(顶部下方,位于 MeasurementsList 右侧,应垂直填充)。
return Scaffold(
appBar: AppBar(title: new Text('Measurements')),
body: new Container(
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(color: Colors.black12),
child: Column(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Row(children: [ControlsWidget(device)]),
Row(
children: <Widget>[
MeasurementList(device)
,
ChartWidget(device)
],
)
],
)),
);
在测量卡中,我想要一个 ListView。但是当我使用Expaded时,ListView会扩展屏幕并且列表不可滚动
Widget build(BuildContext context) {
return Expanded(
flex: 1,
child: Card(
elevation: 4.0,
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemBuilder: (context, index) {
return ListTile(title: Text(measurements[index]));
},
itemCount: measurements.length,
shrinkWrap: true,
),
),
);
}
那么,如何在里面创建一个带有 ListView 的卡片呢?
【问题讨论】:
-
GridView 适合你吗?
-
很遗憾没有,因为根据屏幕尺寸,会有 3 张不同尺寸的卡片
-
您可以尝试将 scrollDirection: Axis.horinzontal 更改为 Axis.vertical 吗?
-
它没有帮助。结果还是一样
-
所以,如果我理解正确 - 您根据屏幕宽度设置第二张卡片的宽度。那么第二张卡片的高度呢?它必须有多大?