如何定义下拉菜单SearchCallBack

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

我想在 Dropdown Flutter/Dart 中实现文本搜索。

我想使用 Flutter/Dart DropdownMenu 类。

我不想使用 DropDownButton b/c 它没有搜索功能。

DropdownMenu Search 类有 SearchCallBack。

DropdownMenu 类有 3 个关键内容:List、Controller 和 SearchCallBack。

我想使用Controller来搜索Controller的输入文本。

SearchCallBack 有两个功能:列表和查询。

我不确定如何正确定义 SearchCallBack。

您能否提供 SearchCallBack 的示例。

谢谢你

flutter
1个回答
0
投票

想象一个函数,它接受

DropdownMenuEntry
(“条目”)和
String
(“查询”)的列表,并返回
int
作为列表中与字符串匹配的
DropdownMenuEntry
的索引。这是您作为
SearchCallback
参数传递的函数。如果将其留空,它将默认为返回包含查询的第一个条目的索引的函数。您可以编写自己的函数来自定义搜索。例如,您可以编写一个函数,该函数返回与查询完全匹配的第一个条目的索引。

DropdownMenu<Text>(
  searchCallback: (List<DropdownMenuEntry<Text>> entries, String query) {
    if (query.isEmpty) {
      return null;
    }
    final int index = entries.indexWhere((DropdownMenuEntry<Text> entry) => entry.label == query);

    return index != -1 ? index : null;
  },
  dropdownMenuEntries: const <DropdownMenuEntry<Text>>[],
)
© www.soinside.com 2019 - 2024. All rights reserved.