我正在使用 Hive Flutter。我有一个这样的结果列表,但我想要 GroupBy 按日期列出的列表。
结果是我想要的,如下所示:
2019 年 12 月 9 日,星期一
- ggh
- ggh
- ggh
- ggh
我已经研究并找到了一些包:Collection Package。我尝试使用此脚本对列表进行分组,但打印不是我想要的:
var groupData = groupBy(historyList, (obj) => historyList);
print(historyList);
结果
I/flutter (23894): {2019-12-09 01:08:56.328: [Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive']}
I/flutter (23894): {2019-12-09 00:57:22.455: [Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive']}
I/flutter (23894): {2019-12-09 00:57:01.274: [Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive']}
I/flutter (23894): {2019-12-09 00:56:56.992: [Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive']}
I/flutter (23894): {2019-12-09 00:56:47.549: [Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive', Instance of 'HistoryModelHive']}
这是我的模型:
WatchBoxBuilder(
box: Hive.box("history_box"),
builder: (ctx, boxx) {
final historyList = boxx.values.toList().cast<HistoryModelHive>();
historyList.sort((first, end) =>
end.dateHistoryCreate.compareTo(first.dateHistoryCreate));
if (historyList.isEmpty) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Image.asset(
"assets/images/empty2.png",
fit: BoxFit.cover,
height: 250,
),
Text(
'Your History Empty',
textAlign: TextAlign.center,
style: textTheme.display1,
)
],
);
} else {
return ListView.builder(
itemCount: boxx.length,
itemBuilder: (BuildContext context, int i) {
final historyData = historyList[i];
var groupData = groupBy(
historyList, (obj) => historyData.dateHistoryCreate);
print(groupData);
return ListViewHistory(
id: historyData.id,
receiverName: historyData.receiverName,
amountDebt: historyData.amountDebt,
amountLack: historyData.amountLack,
amountSubstract: historyData.amountSubstract,
dateHistoryCreate: historyData.dateHistoryCreate,
imageReceiver: historyData.imageReceiver,
imageSignature: historyData.imageSignature,
nameAction: historyData.nameAction,
);
},
);
}
},
)),