使用 FocusScopeNode 在 TextFormFields 之间轻松移动焦点
生活随笔
收集整理的這篇文章主要介紹了
使用 FocusScopeNode 在 TextFormFields 之间轻松移动焦点
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Form和TextFormField是在 Flutter 中輸入文本時(shí)非常有用的小部件。
我們可以提供一種在鍵盤(pán)上按“下一步”時(shí)移動(dòng)輸入焦點(diǎn)的便捷方法嗎?
使用FocusScopeNode,這是非常容易做到的。
假設(shè)您有一個(gè)電子郵件和密碼輸入表單,如下所示:
import 'package:flutter/material.dart';class EmailPasswordSignInForm extends StatefulWidget {@override_EmailPasswordSignInFormState createState() =>_EmailPasswordSignInFormState(); }class _EmailPasswordSignInFormState extends State<EmailPasswordSignInForm> {final FocusScopeNode _node = FocusScopeNode();final GlobalKey<FormState> _formKey = GlobalKey<FormState>();@overridevoid dispose() {_node.dispose();super.dispose();}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text("FocusScopeNode "),),body: Container(child: Form(key: _formKey,child: FocusScope(node: _node,child: Column(crossAxisAlignment: CrossAxisAlignment.stretch,children: <Widget>[// emailTextFormField(decoration: InputDecoration(labelText: 'Email',hintText: 'https://luckly.work/',),textInputAction: TextInputAction.next,keyboardType: TextInputType.emailAddress,// move to the next fieldonEditingComplete: _node.nextFocus,),// passwordTextFormField(decoration: InputDecoration(labelText: 'Password',),obscureText: true,textInputAction: TextInputAction.done,// move to the next fieldonEditingComplete: _node.nextFocus,),// submitRaisedButton(child: Text('Sign In'),onPressed: () {/* submit code here */},),],),),),),);} }總結(jié)
以上是生活随笔為你收集整理的使用 FocusScopeNode 在 TextFormFields 之间轻松移动焦点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用 Flutter 制作一个简单的笑话
- 下一篇: 如何在 Flutter 中禁用默认的 W