如何在颤振搜索委托中排序?



我有一个委托文件搜索到一些项目,它的工作和显示项目,但当我在搜索字段中输入的东西项目保持不变,我的问题是我不知道如何添加一个排序选项,这是下面的代码的一部分,显示项目在一个卡片,有什么想法吗?

@override
Widget buildResults(BuildContext context) {
BlocBuilder<CardListBloc, CardState>(
builder: (context, state) {
itemBuilder: (context, index) {
return Card(
elevation: 4,
shape: cardRadius(4),
margin: EdgeInsets.only(left: 12, right: 12, top: index == 0 ? 12 : 
0),
child: Container(
width: double.infinity,
child: ListTile(
title: Text(state.mTicket.cards[index].name),
subtitle: Text(Jiffy(state.mTicket.cards[index].createdOn).MEd),
}

您可以修改代码以按名称的字母顺序对条目进行排序:

@override
Widget buildResults(BuildContext context) {
BlocBuilder<CardListBloc, CardState>(
builder: (context, state) {
List<CardItem> items = state.mTicket.cards.where((card) =>
card.name.toLowerCase().contains(query.toLowerCase())).toList();
items.sort((a, b) => a.name.compareTo(b.name)); // sort by name

return ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
return Card(
elevation: 4,
shape: cardRadius(4),
margin: EdgeInsets.only(left: 12, right: 12, top: index == 0 ? 12 : 0),
child: Container(
width: double.infinity,
child: ListTile(
title: Text(items[index].name),
subtitle: Text(Jiffy(items[index].createdOn).MEd),
),
),
);
},
);
}
);
}

这个修改后的实现使用sort()方法在显示在ListView中之前按名称对项目列表进行排序。您可以根据需要修改排序函数,以根据不同的标准(如日期或流行程度)对项目进行排序。

最新更新