问题描述
未从Flutter中的建议中选择时如何重置TypeAheadFormField的文本?
以下是我的代码,用户可以在其中选择某些内容,但是如果用户没有选择任何内容而只留下了一些垃圾输入,那么我想重置它。 TypeAheadFormField
失去焦点后如何重设?
TypeAheadFormField(
textFieldConfiguration: TextFieldConfiguration(
controller: xC,),suggestionsCallback: (pattern) async {
List<List<String>> suggestions = List<List<String>>();
for (int i = 0; i < X.length; i++) {
if (X[i][LANGUAGE.CURRENT].contains(pattern)) {
suggestions.add(X[i]);
}
}
return suggestions;
},itemBuilder: (_,x) {
return ListTile(
leading: Container(
child: Clipoval(
child: Image.asset(x[2]),title: Text(x[LANGUAGE.CURRENT]),);
},transitionBuilder: (_,suggestionsBox,ac) => suggestionsBox,onSuggestionSelected: (List<String> suggestion) {
selectedX = suggestion;
xC.text = suggestion[LANGUAGE.CURRENT];
},
解决方法
您可以将focusNode和控制器分配给TypeAheadFormField
focusNode: focusNode,controller: searchController,
,当您想重置它时,可以使用searchController.clear()
如果要删除隐藏键盘,则可以致电
SystemChannels.textInput.invokeMethod('TextInput.hide');