首页 > 解决方案 > 在 Flutter 中检测键盘事件

问题描述

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

我想实现一个输入屏幕,类似于那个。

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

标签: dartflutter

解决方案


是的,您可以使用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");
        },
      )
    ]);

}


推荐阅读