Flutter select_form_field包SelectFormField dialog类型搜索功能失效问题
问题原因
select_form_field组件开启搜索功能仅配置enableSearch: true不生效,必须额外传入searchFn参数自定义搜索过滤规则,你当前的代码缺少该配置项。
解决方法
- 先定义搜索过滤函数,示例为按选项的label字段做大小写不敏感模糊匹配:
List<Map<String, dynamic>> _searchAccounts(List<Map<String, dynamic>> items, String keyword) { if (keyword.isEmpty) return items; return items.where((item) => item['label'].toString().toLowerCase().contains(keyword.toLowerCase()) ).toList(); }
- 在SelectFormField组件配置中新增
searchFn参数绑定上述函数,修改后的完整组件代码如下:
SelectFormField( dialogCancelBtn: 'Cancel', enableSearch: true, dialogSearchHint: 'Search account', type: SelectFormFieldType.dialog, icon: Icon(Icons.account_balance), labelText: 'Select Account', hintText: 'Select Account', items: _items, // 新增搜索逻辑绑定 searchFn: _searchAccounts, onChanged: (val) { print(val); }, )
如果需要适配其他匹配规则,比如按value值搜索、大小写敏感匹配,自行调整过滤函数中的判断逻辑即可。
内容的提问来源于stack exchange,提问作者Mn Arsely
相关产品推荐
相关产品推荐

