FormField控件是单一表单字段,这个控件维护表单字段的当前状态,以便更新和验证错误能在UI中可见。TextField控件就是在FormField中包装了一个Input控件(后面的文章讲解),FormField维护输入的当前值,使您不需要自己管理它,更容易一次保存,重置或验证多个字段。

import 'package:flutter/material.dart';class MyApp extends StatefulWidget {@override_MyApp createState() => new _MyApp();
}class _MyApp extends State<MyApp> {String _lastName;String _firstName;GlobalKey<FormState> _formKey = new GlobalKey<FormState>();void _showMessage(String name) {showDialog<Null>(context: context,child: new AlertDialog(content: new Text(name),actions: <Widget>[new FlatButton(onPressed: () {Navigator.pop(context);},child: new Text('确定'))]));}@overrideWidget build(BuildContext context) {return new Scaffold(appBar: new AppBar(title: new Text('表单输入')),// Form:用于将多个表单控件组合在一起的容器body: new Form(key: _formKey,child: new Column(children: <Widget> [// TextFieldd:包含输入的表单控件,每个表单字段都应该在FormField控件中new TextField(labelText: '姓氏',// onSaved:当通过Form.save()保存表单时调用的方法onSaved: (InputValue value) {_lastName = value.text;}),new TextField(labelText: '名字',onSaved: (InputValue value) {_firstName = value.text;}),new Row(children: <Widget> [new RaisedButton(child: new Text('重置'),onPressed: () {// reset():将此Form下的每个TextField重置为初始状态_formKey.currentState.reset();_showMessage('姓名信息已经重置');}),new RaisedButton(child: new Text('提交'),onPressed: () {// save():保存Form下的每个TextField_formKey.currentState.save();_showMessage('你的姓名是'+_lastName+_firstName);})])])));}
}void main() {runApp(new MaterialApp(title: 'Flutter Demo',home: new MyApp()));
}

Flutter进阶—质感设计之表单输入相关推荐

  1. Flutter进阶—质感设计之直接输入

    Input控件是质感设计的文本输入控件,它在用户每次输入时都会调用onChanged回调时,都会更新字段值,还可以实时的对用户输入进行响应. import 'package:flutter/mater ...

  2. Flutter进阶—质感设计之模态底部面板

    模态底部面板是菜单或对话框的替代方案,可防止用户与其他控件进行互动,可以使用showModalBottomSheet函数创建和显示模态底部面板. import 'package:flutter/mat ...

  3. Flutter进阶—质感设计之持久底部面板

    持久性底部面板可以用于补充应用主要内容的信息,即使用户与应用程序的其他控件进行互动,也仍然可以看到持久的底部面板.可以使用Scaffold.showBottomSheet函数创建和显示持久性底部面板. ...

  4. Flutter进阶—质感设计之卡片

    Card控件是质感设计中的卡片控件,作为详细信息的入口.卡片有圆角和阴影,卡片是用于表示一些相关信息的面板,例如相册,地理位置,餐食,联系细节等. import 'package:flutter/ma ...

  5. Flutter进阶—质感设计之标签栏

    在质感设计的控件中,有一个显示水平的一行选项卡,通常作为AppBar控件的一部分创建,并与TabBarView控件结合使用. import 'package:flutter/material.dart ...

  6. Flutter进阶—质感设计之进度条

    LinearProgressIndicator控件是质感设计中的线性进度指示器. import 'package:flutter/material.dart'; class ActionViewEco ...

  7. Flutter进阶—质感设计之列表项

    创建achievement_view_list_item.dart文件,具体的实现每一个列表项. import 'package:flutter/material.dart'; // 创建类,成就目标 ...

  8. Flutter进阶—质感设计之弹出菜单

    PopupMenuButton控件即弹出菜单控件,点击控件会出现菜单. import 'package:flutter/material.dart'; class MenusDemo extends ...

  9. 电子表单设计,表单打印,表单填写,数据发布,VC++,VB,源代码组件库

    电子表单设计,表单打印,表单填写,数据发布,VC++,VB,源代码组件库 -- 为您提供即刻可以拿来使用的源码级电子表单解决方案! E-Form++可视化组件库企业版本电子表单解决方案在E-Form+ ...

最新文章

  1. BZOJ 1927 星际竞速
  2. float64toint
  3. Ubuntu复制相同的目录结构(不复制文件)
  4. 腾讯、百度、阿里、微软面试题精选(不断更新)
  5. VMware View 5.0从菜鸟到高手系列 3 -安装View Composer组件篇
  6. 一篇文章彻底说清JS的深拷贝/浅拷贝
  7. 【TensorFlow】TensorFlow函数精讲之tf.train.ExponentialMovingAverage()
  8. 深入浅出Docker(六):像谷歌一样部署你的应用
  9. keil c语言中断怎么写,如何利用keil C实现单片机中断功能
  10. [小说连载]张小庆,在路上(2)- 兰博和威震天
  11. CCNA培训视频教程下载
  12. Java后台日常学习环境搭建
  13. 1fichier.com-1TB免费FTP空间的使用
  14. Camera问题解锁:Sensor Flicker(banding)
  15. C# 颜色和名称对照表
  16. 超好用的免费PDF转换器,各种互相转换,功能齐全到你不敢相信!
  17. 重磅 | 消灭所有马赛克,谷歌宣布机器学习图像锐化工具RAISR
  18. js数组的方法和扩展运算符
  19. windows10修复引导
  20. 蚂蚁开放平台开发第三方授权登陆(一):开发前期准备

热门文章

  1. 2018: 跑图(深搜)
  2. PHP 连接MySQL数据库
  3. 数据结构(字符串)—— 循环旋转字符串的判断
  4. Python之 range()函数✅
  5. ~~通过预处理逆元的方式求组合数
  6. 最小环(【CCF】NOI Online能力测试 提高组第三题)
  7. HRNet的学习笔记
  8. [转]nonlocal和global
  9. 女性寒性体质注意事项
  10. react将多个公共组件归成一类,方便调用