如何在可扩展列表视图中显示数据

问题描述 投票:0回答:1

[嗨,我想在flutter的可扩展列表视图中显示数据...。例如,我需要下面的列表作为listView的标题...。days = ['Monday','Tuesday','Wednesday'] ...并根据days列表中的日期进行扩展...。以下数据将在同一天填充。

List<Cars> dummyData = [
Cars(
model: 'Fiat',
speed: '100',
day: 'Monday',
),
Cars(
model: 'Maruti',
speed: '120',
day: 'Monday',
),
Cars(
model: 'Hyundai',
speed: '130',
day: 'Tuesday',
),
Cars(
model: 'Toyota',
speed: '140',
day: 'Wednesday',
),
]

[如果您需要我的其他信息,请告诉我...谢谢

flutter flutter-layout
1个回答
0
投票

您可以使用expantionTile小部件来实现。

以下代码可能会对您有所帮助。

class DeleteWidget extends StatefulWidget {
  const DeleteWidget({Key key}) : super(key: key);

  @override
  _DeleteWidgetState createState() => _DeleteWidgetState();
}

class _DeleteWidgetState extends State<DeleteWidget> {
  List<String> _days = ['sunday', 'Monday', 'Tuesday'];
  List<Cars> dummyData = [
    Cars(
      model: 'Fiat',
      speed: '100',
      day: 'Monday',
    ),
    Cars(
      model: 'Maruti',
      speed: '120',
      day: 'Monday',
    ),
    Cars(
      model: 'Hyundai',
      speed: '130',
      day: 'Tuesday',
    ),
    Cars(
      model: 'Toyota',
      speed: '140',
      day: 'Wednesday',
    ),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        child: ListView.builder(
          itemCount: _days.length,
          itemBuilder: (_, index) {
            return ExpansionTile(
                title: Text(_days[index].toString()),
                children: [
                  ...dummyData.map((e) {
                    if (e.day == _days[index]) {
                      return Text(e.speed.toString());
                    }
                    return Container();
                  }).toList(),
                ]);
          },
        ),
      ),
    );
  }
}

class Cars {
  String model;
  String speed;
  String day;
  Cars({this.model, this.day, this.speed});
}
© www.soinside.com 2019 - 2024. All rights reserved.