Я использую текстовое поле typeAhead для автозаполнения, но функция onSuggestionSelected не работает. Я использую флаттер. Выбор не сделан, и listView показывает, что я нахожусь над элементом над тем, который на самом деле завис.
Ниже находится диалоговое окно, в этом случае указатель мыши на самом деле находится ниже 'FIN' в listView. Я использую поле typeAhead в диалоговом окне.
Это код ниже.
TypeAheadFormField(
//initialValue: 'bleh',
textFieldConfiguration: TextFieldConfiguration(
controller: _typeAheadController, //this.
decoration: InputDecoration(
hintText: 'Programme(required)' //label
)),
suggestionsCallback: (pattern) {
return programme
.where((String dc) => dc
.toLowerCase()
.contains(pattern.toLowerCase()))
.toList(); //|| dc.toLowerCase().contains(other.toLowerCase())).toList();
},
itemBuilder: (context, String suggestion) {
return ListTile(
title: Text(suggestion),
);
},
transitionBuilder:
(context, suggestionsBox, controller) {
return suggestionsBox;
},
onSuggestionSelected: (String suggestion) {
_typeAheadController.text = suggestion; //this
print(suggestion + ' selected bith');
},
validator: (value) {
if (value.isEmpty ||
programme.indexOf(value) == -1) {
return 'Please select a course offered in the university you selected!';
}
},
onSaved: (value) => this._selectedCity =
value, //<--------- upload value
)
'program' - это список строк, возвращаемых, в которых строка 'd c' нашел. «печать (предложение +« выбранный Bith »); ' не печатает ничего, чтобы показать, что я вообще никогда не запускал onSelection. Кто-нибудь знает работу вокруг? спасибо.
Диалог: