找到了一种方法来实现它。
显示下一个图标而不是完成-将
textInputAction
参数设置为TextInputAction.next
使用
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()方法中的initFocusNode并将其放置在父Widget的dispose()中。-@AntonDerevyanko
更新:如果没有
FocusNode和
FocusScopeNode,只需调用
FocusScope.of(context).nextFocus(),看看CopsOnRoad解决方案的实现方法,就可以实现相同的目的。有关更多信息,请检查doc。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)