如何在Flutter中检测TextFormField上的键盘事件?如果用户删除了最后一个字母并再次按下删除按钮,则光标应跳回到上一个TextFormField。
我想实现一个Pin-enter屏幕,类似这样的屏幕。
https://mobile-solutions.ingenico.com/wp-content/uploads/IMG_022.png
最佳答案
是的,您可以使用onChange
和FocusScope
设置焦点
在这里,当您删除设置在第一个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");
},
)
]);
}