颤振如何使用TextField中的当前值更新提示文本

时间:2019-08-04 15:53:42

标签: flutter dart textfield

我设置了一个文本字段,因此当我单击它时,它将清除该值-否则,您必须先删除当前值,然后才能键入一个新值。问题是,当我单击时,可以看到原始的提示文本,因为它看起来像已被重置,所以可能会造成混乱。

  

例如,原始提示文本在文本字段中显示25,然后输入新值48。但是,如果我再次单击以再次输入新值,则原来的25提示文本值会在焦点消失后再次显示。

  final TextEditingController control;
  final Function onchanged;
  FocusNode _focusNode;

  @override
  void initState() {
    super.initState();
    _focusNode = FocusNode();
    _focusNode.addListener(() {
      if (_focusNode.hasFocus) control.clear();
    });
  }

  TextField(
        focusNode: _focusNode,
        controller: control,
        onChanged: onchanged,
        decoration: InputDecoration(
          hintText: hint,
        ),
      ),

如何使提示文本更新为先前的值(在清除之前),以便在单击时显示相同的值?这是表单字段中的正常行为,所以我想实现这一目标。

2 个答案:

答案 0 :(得分:0)

在清除textField控制器之前,请使用setState与控制器中的值更新提示变量。那应该做的工作。

答案 1 :(得分:0)

为清楚起见,答案是将分配给hint的{​​{1}}字符串的值设置为控制器文本值的最后一个值,就在清除之前。这是在hintText侦听器中使用FocusNode完成的。

setState