【问题标题】:Change Value of TextFormField when leaving focus离开焦点时更改 TextFormField 的值
【发布时间】:2021-07-19 21:18:19
【问题描述】:

我有一个 TextFormField,如果用户离开它,它应该填充特定的文本。 例如,如果用户编辑该字段并输入“Test”,并且我不想允许字符串“Test”,那么一旦该字段失去焦点,它应该用“Sike!”替换文本。所以类似于 onChanged,但事件是焦点的丢失,而不是价值的变化,这是我到目前为止所拥有的:

TextFormField(
   controller: myController,
   onChanged: (value) {
     if (value == "Test"){
       myController.text = "Sike!";
     }
   },
.............
.............

【问题讨论】:

    标签: flutter dart focus lost-focus textformfield


    【解决方案1】:

    您可以这样做。

    class _DemoState extends State<Demo> {
      final node = FocusNode();
      final tc = TextEditingController();
    
      @override
      void initState() {
        node.addListener(() {
          if (!node.hasFocus && tc.text == 'Test') {
            tc.text = "Sike!";
          }
        });
        super.initState();
      }
    
      @override
      Widget build(BuildContext context) {
        return TextFormField(
          controller: tc,
          focusNode: node,
        );
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-02-19
      • 2022-12-21
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      相关资源
      最近更新 更多