gpt4 book ai didi

dart - 根据提供的列表和参数构建和排序新列表

转载 作者:IT王子 更新时间:2023-10-29 06:40:36 26 4
gpt4 key购买 nike

我有一个模型列表:

class Model {
final DateTime date;
final String text;

Model({this.date, this.text});
}

List<Model> _models = [
Model(date: DateTime(2018, 9, 1), text: 'Text1',),
Model(date: DateTime(2018, 9, 1), text: 'Text2',),
Model(date: DateTime(2018, 9, 2), text: 'Text3',),
Model(date: DateTime(2018, 9, 3), text: 'Text4',),
Model(date: DateTime(2018, 8, 31), text: 'Text7',),
Model(date: DateTime(2018, 9, 3), text: 'Text5',),
Model(date: DateTime(2018, 9, 3), text: 'Text6',),
];

我想要实现的是从每个模型中获取日期参数,并将与该日期匹配的所有模型放入 ListView() 中。所以我可以返回每个日期的模型列表。每次我将数据添加到列表中时,我都希望它自动更新并按日期排序(无需手动操作)。日期格式在这里并不重要。问题:我怎样才能做到这一点?

这是我想要的样子:
2018/9/3
文本4
文本5
文本6

2018/9/2
文本3

2018/9/1
文字1
文本 2

2018/8/31
文本7

最佳答案

使用现有小部件的简单解决方案;你可以使用 side_header_list_view ( https://pub.dartlang.org/packages/side_header_list_view )

例子:

Widget _buildList(){ 

return new SideHeaderListView(
itemCount: _models.length,
itemExtend: 100.0,
headerBuilder: (BuildContext context, int index) {
return Text(_models[index].date);
},
itemBuilder: (BuildContext context, int index) {
return new Card(
child: Text(_models[index].text),
);
},
hasSameHeader: (int a, int b) {
return _models[a].date == _models[b].date;
},
);

}

还没有测试过,理想情况下应该可以工作,前提是,在将它提供给 Text 之前,您可能需要将日期格式化为字符串类型。现在将其视为伪代码。

关于dart - 根据提供的列表和参数构建和排序新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52251853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com