flutter - 在 flutter 中选择后清除自动完成文本?

标签 flutter autocomplete

我已经创建了一个自动完成的文本字段:

                Autocomplete(
                          optionsBuilder: (TextEditingValue textEditingValue){
                            if (textEditingValue.text.isEmpty){
                              return const Iterable<String>.empty();
                            }
                            else{
                              return autoCompleteData.where((word) => word.toLowerCase()
                                  .contains(textEditingValue.text.toLowerCase())
                              );
                            }
                          },
                          onSelected: (value) {
                            print("this is the value $value");
                            setState((){
                              selected=value.toString();
                            });
                            
                          }
                      ),

当我输入一个 json 文件时,它会给我一些建议。 现在,每当我选择它必须清除框的值时,我想要什么。

最佳答案

为了实现这一点,我们应该可以访问文本编辑 Controller ,这样你就可以做一些类似于访问自动完成中的文本编辑 Controller 的事情

late TextEditingController textEditingController;
        Autocomplete(
          optionsBuilder: (TextEditingValue textEditingValue) {
            if (textEditingValue.text.isEmpty) {
              return const Iterable<String>.empty();
            } else {
              return _allSpecialitySkills
                  .where((word) => word.name.toLowerCase().contains(textEditingValue.text.toLowerCase()));
            }
          },
          onSelected: (value) {
            print("this is the value $value");
            textEditingController.text = "";
          },
          fieldViewBuilder: (BuildContext context, TextEditingController fieldTextEditingController,
              FocusNode fieldFocusNode, VoidCallback onFieldSubmitted) {
            textEditingController = fieldTextEditingController;
            return TextField(
              controller: fieldTextEditingController,
              focusNode: fieldFocusNode,
              style: const TextStyle(fontWeight: FontWeight.bold),
            );
          },
        )

找到我为实现上述目标所做的简单项目,

List<String> countries = <String>[
  "Africa",
  "Antarctica",
  "Asia",
  "Australia",
  "Europe",
  "North America",
  "South America",
  "Srilanka",
  "India",
  "China",
  "Japan",
  "Koria",
  "Thai",
];

class AutoCompleteExample extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _AutoCompleteExampleState();
}

class _AutoCompleteExampleState extends State<AutoCompleteExample> {
  late TextEditingController textEditingController;
  @override
  Widget build(BuildContext context) {
    return Autocomplete(
      optionsBuilder: (TextEditingValue textEditingValue) {
        if (textEditingValue.text.isEmpty) {
          return const Iterable<String>.empty();
        } else {
          return countries.where((word) => word.toLowerCase().startsWith(textEditingValue.text.toLowerCase()));
        }
      },
      onSelected: (value) {
        print("this is the value $value");
        textEditingController.text = "";
      },
      fieldViewBuilder: (BuildContext context, TextEditingController fieldTextEditingController,
          FocusNode fieldFocusNode, VoidCallback onFieldSubmitted) {
        textEditingController = fieldTextEditingController;
        return TextField(
          controller: fieldTextEditingController,
          focusNode: fieldFocusNode,
          style: const TextStyle(fontWeight: FontWeight.bold),
        );
      },
    );
  }
}

关于flutter - 在 flutter 中选择后清除自动完成文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72602087/

相关文章:

android - Flutter:任务 ':app:processDebugGoogleServices' 执行失败

sockets - Flutter/Dart套接字通信,字符编码问题

sql-server - 在客户端或服务器上处理自动完成/建议更好吗?

javascript - jQuery UI 自动完成

xcode - 如何使 Xcode 自动完成@property

Flutter 如何模拟对 rootBundle.loadString(...) 的调用,然后重置模拟的行为?

flutter - 如何在不存在于同一文件中的两个小部件之间传递文本值

ios - flutter 音频播放器播放声音在 IOS 中不起作用

css - map 自动完成未以模态 Angular 显示。 z-index 不工作

javascript - Ajax调用错误跨源请求: Pulling list of universities for autocomplete in rails