在 Flutter 中检测键盘事件

swi*_*nid 10 dart flutter

如何在 Flutter 中检测 TextFormField 上的键盘事件?如果用户删除最后一个字母并再次按下删除按钮,则光标应跳回到之前的 TextFormField。

我想实现一个 pin-enter 屏幕,就像那个一样。

https://mobile-solutions.ingenico.com/wp-content/uploads/IMG_022.png

San*_*inh 4

是的,您可以使用onChangeAndFocusScope来设置焦点

在这里,当您删除FormField第一个焦点上的第二个焦点的最后一个字母时FormField

 var firstField = FocusNode();
  var secondField = FocusNode();
  @override
  Widget build(BuildContext context) {
    return Column(children: <Widget>[
      TextFormField(
        focusNode: firstField,
        onChanged: (text) {
          print("First  field: $text");
        },
      ),
      TextFormField(
        focusNode: secondField,
        onChanged: (text) {
          if (text.length <= 0) {
            FocusScope.of(context).requestFocus(firstField);
          }
          print("Second  field: $text");
        },
      )
    ]);
Run Code Online (Sandbox Code Playgroud)

}

  • 这是如何运作的?!按退格键时不会调用 onChange。 (2认同)