【发布时间】:2019-09-25 04:47:59
【问题描述】:
我正在尝试构建一个具有自动完成功能的文本字段。我正在使用AutoComplete TextField 包。
我有带有 fromMap 和 toMap 方法的用户模型类。有从数据库中检索用户并返回用户列表List<Users>的功能。
这是构建自动完成字段的代码:
AutoCompleteTextField searchTextField = AutoCompleteTextField<Users>(
key: key,
clearOnSubmit: false,
suggestions: users,
style: TextStyle(color: Colors.black, fontSize: 16.0),
decoration: InputDecoration(
contentPadding: EdgeInsets.fromLTRB(10.0, 30.0, 10.0, 20.0),
hintText: "Search Name",
hintStyle: TextStyle(color: Colors.black),
),
itemFilter: (item, query) {
return item.name.toLowerCase().startsWith(query.toLowerCase());
},
itemSorter: (a, b) {
return a.name.compareTo(b.name);
},
itemSubmitted: (item) {
setState(() {
searchTextField.textField.controller.text = item.name;
});
},
itemBuilder: (context, item) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(
item.name,
),
],
);
},
);
问。我是否遗漏了什么或做错了什么?
注意:
-
users对象包含格式正确的用户列表,我已打印以验证这一点。
【问题讨论】:
-
你的问题是......?
"Am I missing something or doing wrong?"真的不多说了,是不是崩溃了?如果是这样,发布堆栈跟踪,如果不是,什么不起作用? -
它不会崩溃,也不会显示预期的结果。大约有 5 个用户的开头字母为
A,当我输入A时,它应该显示以A开头的用户列表,但它没有显示任何内容。并且控制台中没有任何错误。但是,当我输入内容并在字段外点击时,它会显示此错误W/IInputConnectionWrapper( 5489): getCursorCapsMode on inactive InputConnection Exception caught by gesture The method 'where' was called on null. Receiver: null Tried calling: where(Closure: (Users) => bool) -
您正在使用pub.dev/packages/autocomplete_textfield?我遇到了很多问题,当我切换到 pub.dev/packages/flutter_typeahead 时这些问题就消失了(文档包更好)
-
谢谢,我会用它。 1. 如何从项目中完全删除一个包? (想删除
autocomplete_textfield包) 2.最后如何获得城镇名称? -
1.将其从
pubspec.yaml文件中删除,2. 数据取自 sqflite?
标签: flutter dart autocomplete autocompletetextview