Flutter进阶—质感设计之表单输入
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进阶—质感设计之表单输入相关推荐
- Flutter进阶—质感设计之直接输入
Input控件是质感设计的文本输入控件,它在用户每次输入时都会调用onChanged回调时,都会更新字段值,还可以实时的对用户输入进行响应. import 'package:flutter/mater ...
- Flutter进阶—质感设计之模态底部面板
模态底部面板是菜单或对话框的替代方案,可防止用户与其他控件进行互动,可以使用showModalBottomSheet函数创建和显示模态底部面板. import 'package:flutter/mat ...
- Flutter进阶—质感设计之持久底部面板
持久性底部面板可以用于补充应用主要内容的信息,即使用户与应用程序的其他控件进行互动,也仍然可以看到持久的底部面板.可以使用Scaffold.showBottomSheet函数创建和显示持久性底部面板. ...
- Flutter进阶—质感设计之卡片
Card控件是质感设计中的卡片控件,作为详细信息的入口.卡片有圆角和阴影,卡片是用于表示一些相关信息的面板,例如相册,地理位置,餐食,联系细节等. import 'package:flutter/ma ...
- Flutter进阶—质感设计之标签栏
在质感设计的控件中,有一个显示水平的一行选项卡,通常作为AppBar控件的一部分创建,并与TabBarView控件结合使用. import 'package:flutter/material.dart ...
- Flutter进阶—质感设计之进度条
LinearProgressIndicator控件是质感设计中的线性进度指示器. import 'package:flutter/material.dart'; class ActionViewEco ...
- Flutter进阶—质感设计之列表项
创建achievement_view_list_item.dart文件,具体的实现每一个列表项. import 'package:flutter/material.dart'; // 创建类,成就目标 ...
- Flutter进阶—质感设计之弹出菜单
PopupMenuButton控件即弹出菜单控件,点击控件会出现菜单. import 'package:flutter/material.dart'; class MenusDemo extends ...
- 电子表单设计,表单打印,表单填写,数据发布,VC++,VB,源代码组件库
电子表单设计,表单打印,表单填写,数据发布,VC++,VB,源代码组件库 -- 为您提供即刻可以拿来使用的源码级电子表单解决方案! E-Form++可视化组件库企业版本电子表单解决方案在E-Form+ ...
最新文章
- BZOJ 1927 星际竞速
- float64toint
- Ubuntu复制相同的目录结构(不复制文件)
- 腾讯、百度、阿里、微软面试题精选(不断更新)
- VMware View 5.0从菜鸟到高手系列 3 -安装View Composer组件篇
- 一篇文章彻底说清JS的深拷贝/浅拷贝
- 【TensorFlow】TensorFlow函数精讲之tf.train.ExponentialMovingAverage()
- 深入浅出Docker(六):像谷歌一样部署你的应用
- keil c语言中断怎么写,如何利用keil C实现单片机中断功能
- [小说连载]张小庆,在路上(2)- 兰博和威震天
- CCNA培训视频教程下载
- Java后台日常学习环境搭建
- 1fichier.com-1TB免费FTP空间的使用
- Camera问题解锁:Sensor Flicker(banding)
- C# 颜色和名称对照表
- 超好用的免费PDF转换器,各种互相转换,功能齐全到你不敢相信!
- 重磅 | 消灭所有马赛克,谷歌宣布机器学习图像锐化工具RAISR
- js数组的方法和扩展运算符
- windows10修复引导
- 蚂蚁开放平台开发第三方授权登陆(一):开发前期准备