如何在Flutter中搜索代理?

ars1skjm  于 2023-04-07  发布在  Flutter
关注(0)|答案(1)|浏览(101)

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

@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),
                  }
zengzsys

zengzsys1#

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

@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中显示项目列表之前按名称对项目列表进行排序。您可以根据需要修改排序函数,以根据不同的条件(如日期或流行度)对项目进行排序。

相关问题