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

我想实现一个Pin-enter屏幕,类似这样的屏幕。

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

最佳答案

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

在这里,当您删除设置在第一个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");
        },
      )
    ]);

}

07-24 09:49