FormTextFormField是在 Flutter 中输入文本时非常有用的小部件。

我们可以提供一种在键盘上按“下一步”时移动输入焦点的便捷方法吗?

使用FocusScopeNode,这是非常容易做到的。

假设您有一个电子邮件和密码输入表单,如下所示:

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 */},),],),),),),);}
}

使用 FocusScopeNode 在 TextFormFields 之间轻松移动焦点相关推荐

  1. qt 进程间切换焦点_Qt下的进程界面之间的鼠标焦点切换

    目录 需求 有三个软件A.B.C.A是主要软件,B.C是辅助软件. ⑴ 在使用A的过程中,按N键可以呼出软件B,按M键可以呼出软件C.再次按下可以隐藏它们. ⑵ 在软件B.C都存在的条件下,按J键可以 ...

  2. linux 共享硬盘分区,linux – 如何在多台计算机之间轻松共享本地分区

    推荐文章 SCSI: 小型计算机系统接口(英 语:Small Computer System Interface; 简写:SCSI),一种用于计算机和智能设备之间(硬盘.软驱.光驱.打印机.扫描仪等) ...

  3. win10如何两个屏幕之间快速切换焦点软件

    windows下把当前显示器中的软件,切换到另外一个屏幕 win10下测试通过. 场景, win10系统下,扩展连接a屏和b屏, a屏显示一个网页,非常长.想切换到b屏. 通常都是鼠标拖动网页到b屏, ...

  4. 让协同工作更加轻松——Office 2007面面观之(8)

    上一篇:Office 2007面面观之(7) - 提高个人工作效率<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com: ...

  5. 服务机器人“大战”进入下半场,竞争焦点变了

    对于机器人企业而言,"卖出去"是商业本质. 如何"卖出去",往往是企业之间的竞争焦点,它也许是技术,也许是营销,但随着服务机器人大战进入下半场,服务机器人的竞争 ...

  6. 爱立信诉中兴案的焦点:底线之争

    爱立信诉中兴案的焦点:底线之争<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  7. Mac 和 Android 手机之间互传文件,这四种方法简单高效!

    在Windows上,我们常常需要用USB数据线将安卓手机连接到电脑上,然后在手机和电脑之间传输各种文件.但是这种方法对Mac电脑就不怎么起作用了.由于OS X系统的特殊性,许多用户都不知道如何顺利地将 ...

  8. 数据仓库与数据湖之间有何区别?

    2019独角兽企业重金招聘Python工程师标准>>> 数据仓库是一种具有正式架构的成熟的.安全的技术.它们存储经过全面处理的结构化数据,以便完成数据治理流程.数据仓库将数据组合为一 ...

  9. drugbank下载XML文件解析

    目录 HTML简介 什么是HTML HTML 标签 HTML 文档 = 网页 H使用 Notepad 或 TextEdit 来编写 HTML 步骤一:启动记事本 步骤一:启动记事本 步骤二:用记事本来 ...

最新文章

  1. Microbiome:揩老鼠皮毛揩来高分文章——野生哺乳动物的皮肤和肠道微生物群对环境污染做出的反应
  2. 【SRIO】5、Xilinx RapidIO核例子工程源码分析
  3. kafka修改分区数_大数据技术:解析SparkStreaming和Kafka集成的两种方式
  4. 最新鲜最详细的Android SDK下载安装及配置教程
  5. python 理解Matplotlib 3D (三维图) 绘图函数 plot_surface 的 rstride 和 cstride参数
  6. 数据接口的登录态校验以及JWT
  7. 反写规则-销售订单关闭后不允许出库 (销售订单-销售出库单)
  8. 华三1822-24路由交换机配置例子
  9. 夸奖对方代码写的好_测一测,你写的代码性能好吗?
  10. w3cc离线版手册_web前端入门必备手册,离线w3school参考手册
  11. 信息化项目甲方采购的准备与实施
  12. Linux学习笔记021---Centos7 下 MySql too many connections 报错
  13. 域内计算机策略应用顺序
  14. 构建词表与抽样——【torch学习笔记】
  15. flash代替epcs
  16. Xposed的框架的使用
  17. RESTful 架构介绍
  18. 【GAN】Mode Collapse 和 Mode Dropping 问题定义
  19. 数据安全简单分析总结
  20. 带有serpstack的实时Google搜索结果API

热门文章

  1. html获取鼠标按键数,鼠标在IE、Firefox和Opera点击键所对应的数字代码
  2. three.js两个点给线条加宽度_用感性的方式练习线条,凤尾花21,彩铅手绘教程...
  3. c# 定位内存快速增长_c#如何避免内存分配瓶颈以提高多线程性能
  4. redux异步action_redux-thunk 和 redux-saga 的区别?
  5. 视觉检测无脊椎机器人或vipir_机器人视觉引导系统原理及解决方案
  6. xcode8 matlab,Xcode8 iOS App上传详细流程
  7. android 手机号码去重,第135天:移动端开发经验总结
  8. Linux网络模拟,模拟网络访问解析
  9. python 多进程中锁的使用方法
  10. git只添加指定类型的文件的.gitignore规则