卡内Flutter ListView

时间:2018-10-16 13:10:21

标签: listview flutter

我想要一个可以容纳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?

1 个答案:

答案 0 :(得分:0)

尝试使用MediaQuery作为高度。

MediaQueryData queryData; queryData = MediaQuery.of(context);

然后在高处使用

height: queryData.size.height - height_of_ControlsWidget