我是Flutter的新手。
我正在使用以下小部件构建具有多个文本输入的表单:Form,TextFormField。出现的键盘不显示“下一个”(应将焦点转移到下一个字段)字段操作,而是“完成”操作(隐藏键盘)。
我在官方文档中寻找任何提示,没有发现直接可以做的事情。
我虽然登陆了FocusNode(cookbook,api doc)。它提供了通过应用程序上的某些按钮或任何其他操作来转移焦点的机制,但我希望它位于键盘中。
最佳答案
截图:
您可以不使用FocusNode
或FocusScopeNode
而做到这一点。
@override
Widget build(BuildContext context) {
final node = FocusScope.of(context);
return Scaffold(
body: Column(
children: <Widget>[
TextField(
decoration: InputDecoration(hintText: 'TextField A'),
textInputAction: TextInputAction.next,
onEditingComplete: () => node.nextFocus(), // Move focus to next
),
TextField(
decoration: InputDecoration(hintText: 'TextField B'),
textInputAction: TextInputAction.next,
onEditingComplete: () => node.nextFocus(), // Move focus to next
),
TextField(
decoration: InputDecoration(hintText: 'TextField C'),
textInputAction: TextInputAction.done,
onSubmitted: (_) => node.unfocus(), // Submit and hide keyboard
),
],
),
);
}