使用Flutter嵌套和同步listview(类似于调度程序)

时间:2019-07-31 14:40:19

标签: flutter flutter-layout

我正在阅读有关Flutter的一些教程,而我正试图构建一个调度程序视图。我将布局分为两个相邻的列表视图(蓝色和橙色)。 蓝色列表视图非常简单:24个项目,可垂直滚动。 现在,橙色列表视图是我遇到的问题。这部分在整体上应垂直和水平滚动(注意,最后一个单元格是部分可见的)。垂直和水平单元的数量都是已知的。 我尝试使用嵌套列表视图,列表视图和另一个列表视图的子视图来实现此目的,但出现错误:

  

垂直视口的宽度不受限制。

我的问题是:我将如何用Flutter实现类似的目标?

enter image description here

1 个答案:

答案 0 :(得分:0)

嵌套listView的过程。

Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Confirmed Request'),
      ),
        body: Column(
            children: <Widget>[
                nestedWidget()
            ],
        ),
    );
}
Widget nestedWidget() {
    List<Widget> listTiles = new List();
    for(int i=0;i<scheduleLists.length;i++){
      listTiles.add(getChildLists(i,scheduleLists.values.elementAt(i)));
    }
    return Column(children: listTiles,);
}

Widget getChildLists(int i, Map<String,String> tempChild){
    if(tempChild.keys.length==0){
      isEmpty = true;
      return Center(child: Container(child: Text('No data'),),);
    }
    return ListView.separated(
      shrinkWrap: true,
      itemBuilder: (BuildContext context, int index){
        return Container(
            child: Text(tempChild.values.elementAt(index)),
        );
      },
      itemCount: tempChild.length,
      separatorBuilder: (BuildContext context, int index) => Divider(),
    );
}