Listview 颤振列表视图内部卡

Listview 颤振列表视图内部卡,listview,flutter,Listview,Flutter,我想要一个有3张卡的屏幕。 一张卡是CotrolWidget(顶部为固定高度),第二张卡是MeasurementsList(顶部下方,应垂直填充),第三张卡是ChartWidget(顶部下方,测量列表右侧,应垂直填充) } 那么,如何创建包含ListView的卡片呢 尝试使用MediaQuery查看高度 MediaQueryData queryData; queryData=MediaQuery.of(上下文) 然后在高度使用 height:queryData.size.height-heigh

我想要一个有3张卡的屏幕。 一张卡是CotrolWidget(顶部为固定高度),第二张卡是MeasurementsList(顶部下方,应垂直填充),第三张卡是ChartWidget(顶部下方,测量列表右侧,应垂直填充)

}


那么,如何创建包含ListView的卡片呢

尝试使用
MediaQuery
查看高度

MediaQueryData queryData;
queryData=MediaQuery.of(上下文)

然后在高度使用


height:queryData.size.height-height\u of_ControlsWidget

GridView对您有用吗?很遗憾,没有,因为根据屏幕大小将有3张大小不同的卡。您是否可以尝试将滚动方向:Axis.horinzontal更改为Axis.vertical?它没有帮助。如果我理解正确的话,仍然是相同的结果-您根据屏幕宽度设置第二张卡的宽度。第二张卡片的高度是多少?它必须有多大?高度是多少?我不认为这会有帮助,但我会试试。你可以将卡片包装在一个容器中,并设置我认为容器的高度。试试这个:
card(child:new SizedBox(高度:your_height,child:new Center(child:new Text('First card'),),),,,
是的,设置大小可以,但这是“黑客行为”。问题是,我必须设置大小高度:queryData.size.height-someNumber,其中someNumber不是ControlWidget的高度,而是一些不同的数字,无法计算。在我的例子中,我的高度是48,有些数字是168。我试图通过填充和appbar高度的总和来计算出这个数字,但它不是168
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)
            ],
          )
        ],
      )),
);
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,
    ),
  ),
);