Я пытаюсь создать текстовое поле с функцией автозаполнения.И я использую Автозаполнение TextField пакет.
У меня есть класс модели Users с методами 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,
),
],
);
},
);
Q. Я что-то упускаю или делаю неправильно?
ПРИМЕЧАНИЕ:
- У объекта
users
есть список пользователей в правильном формате, я напечатал, чтобы проверить это.