我想要一个可以容纳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的Card?
答案 0 :(得分:0)
尝试使用MediaQuery
作为高度。
MediaQueryData queryData;
queryData = MediaQuery.of(context);
然后在高处使用
height: queryData.size.height - height_of_ControlsWidget