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

我想实现一个Pin-Enter屏幕,类似于那个屏幕.

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

推荐答案

Yes you can do that using onChange And FocusScope for set focus

此处,当您删除第二个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");
        },
      )
    ]);

}

Dart相关问答推荐

我们应该将多少代码放入构造函数中?

有什么区别!并且 ! 在 Dart 中?

如何扩展 Dart 套接字 BroadcastStream 缓冲区大小为 1024 字节?

angular.dart NgTwoWay 和 NgAttr 已弃用?

当 ng-repeat 嵌套在 AngularDart 中时访问外部 $index

Flutter pod 安装问题 - # 的未定义方法 `each_child'

使用 dart 中的括号表示法访问对象的属性

如何在streambuilder中查询firestore文档并更新listview

如何将 Dart 代码迁移到不可空 (NNBD)?

Flatter有数据绑定吗?

Flutter:如何正确实现 FlutterError.OnError

在 Dart 中向服务器发出多个独立请求的最佳方式

如何 Select 性地传递可选参数?

'Future' 的实例而不是显示值

在 Flutter 的 TextFormField 中管理事件

Dart 有 int.INFINITY 吗?

Dart:你如何让 Future 等待 Stream?

Dart 后期初始化final变量

如何在 Dart 中将 UTF-8 字符串转换为字节数组?

在 Dart 中为数字添加前导零