如何将焦点切换到下一个文本框在扑?

问题描述 投票:5回答:1

我是新来扑。

我建立使用以下部件多个文本输入的表格:,TextFormField。出现不显示“下一步”(这应重点转移到下一个字段)领域的行动键盘代替它的是“完成”行动(其中隐藏keyborad)。

我看着在官方的文档任何提示,没有发现任何直接的是可以做到的。我虽然登上FocusNode(cookbookapi doc)。它提供了机制的一些按钮或应用上的任何其他行动转移焦点,但我希望它是键盘。

dart flutter flutter-layout
1个回答
24
投票

找到一种方法来实现它。

  1. 显示一个图标,而不是完成 - 设置textInputAction参数TextInputAction.next
  2. 使用onFieldSubmitted回调要求下一场焦点节点。 class FormWidget extends StatelessWidget{ final focus = FocusNode(); @override Widget build(BuildContext context) { return Form( child: SingleChildScrollView( padding: EdgeInsets.symmetric(horizontal: 16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: <Widget>[ TextFormField( textInputAction: TextInputAction.next, autofocus: true, decoration: InputDecoration(labelText: "Input 1"), onFieldSubmitted: (v){ FocusScope.of(context).requestFocus(focus); }, ), TextFormField( focusNode: focus, decoration: InputDecoration(labelText: "Input 2"), ), ], ), ), ); } }

编辑:在文档(flutter.io/docs/cookbook/forms/focus)说, - 我们还需要管理FocusNode生命周期。因此,在init()方法初始化FocusNode和父控件的Dispose()方法处理。 - @AntonDerevyanko

© www.soinside.com 2019 - 2024. All rights reserved.