未从Flutter中的建议中选择时如何重置TypeAheadFormField的文本?

问题描述

未从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');

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...