点击空白 input 失去焦点, 在页面的Scaffold外层加

GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () {FocusScope.of(context).requestFocus(FocusNode());},
child:
);
 
一、Flutter 常用表单介绍
  Flutter 中常见的表单有 TextField 单行文本框,TextField 多行文本框、CheckBox、Radio、Switch  CheckboxListTile、RadioListTile、SwitchListTile、Slide.
 
二、TextField 文本框组件
  TextField 表单常见属性:
  maxLines  设置此参数可以把文本框改为多行文本框
  onChanged  文本框改变的时候触发的事件
  decoration
  hintText 类似 html 中的 placeholder
  border  配置文本框边框 OutlineInputBorder 配合使用
  labelText lable 的名称
  labelStyle 配置 lable 的样式
  obscureText  把文本框框改为密码框
  controller  controller 结合 TextEditingController()可以配置表单默认显示的内容
 
三、Checkbox、CheckboxListTile 多选框组件
 
  Checkbox 常见属性:
  value  true 或者 false
  onChanged  改变的时候触发的事件
  activeColor  选中的颜色、背景颜色
  checkColor  选中的颜色、Checkbox 里面对号的颜色
 
CheckboxListTile 常见属性:
  valuetrue 或者 false
  onChanged  改变的时候触发的事件
  activeColor  选中的颜色、背景颜色
  title  标题
  subtitle  二级标题
  secondary  配置图标或者图片
  selected  选中的时候文字颜色是否跟着改变 
 
四、Radio、RadioListTile 单选按钮组件
  Radio 常用属性:
    value 单选的值
   onChanged 改变时触发
   activeColor  选中的颜色、背景颜色
   groupValue  选择组的值
   RadioListTile 常用属性:
 
  RadioListTile 常用属性
    value  true 或者 false
    onChanged  改变的时候触发的事件
    activeColor  选中的颜色、背景颜色
    title  标题
    subtitle  二级标题
    secondary  配置图标或者图片
    groupValue  选择组的值 
 
五、开关 Switch
  value  单选的值
  onChanged  改变时触发
  activeColor  选中的颜色、背景颜色
 
表单验证  正则格式  RegExp(r'[\u4e00-\u9fa5]')
inputFormatters: [
WhitelistingTextInputFormatter(RegExp('[a-zA-Z]')), //只允许输入字母
WhitelistingTextInputFormatter.digitsOnly, // 只允许输入数字
WhitelistingTextInputFormatter(RegExp("[0-9.]")), //允许输入小数
LengthLimitingTextInputFormatter(5), // 限制字符串长度
WhitelistingTextInputFormatter(RegExp("[a-zA-Z]|[\u4e00-\u9fa5]|[0-9]")) //只能输入汉字或者字母或数字
],
 
案例代码
 
 TextField(decoration: InputDecoration(hintText: '用户名'), controller: TextEditingController(text: defaultText)),
RaisedButton(child: Text('按钮'), onPressed: () {setState(() {defaultText = '666';});},),
SizedBox(height:5),
TextField(decoration: InputDecoration(hintText: '用户名', border: OutlineInputBorder()),),
SizedBox(height:5),
TextField(decoration: InputDecoration(border: OutlineInputBorder(), labelText: '用户名', labelStyle: TextStyle(color: Colors.red)), ),
SizedBox(height:5),
TextField(obscureText: true, decoration: InputDecoration(hintText: '输入密码', border: OutlineInputBorder()),),
SizedBox(height:5),
TextField(maxLines: 4, decoration: InputDecoration(hintText: '用户名', border: OutlineInputBorder()),),
// 多选框
Checkbox(value: checkFlag, onChanged: (val) { setState(() { checkFlag = val; });},),
Row(
children: <Widget>[
Checkbox(value: checkFlag, onChanged: (val) { setState(() { checkFlag = val; });},),
Text('123'),
],
),
CheckboxListTile(secondary: Icon(Icons.home), title: Text('123'), subtitle: Text('456'), value: checkFlag, onChanged: (val) { setState(() { checkFlag = val; });}), // Radio
Row(
children: <Widget>[
Text('男:'),
Radio(value: 1, onChanged: (val) { setState(() {radioFlag = val;});}, groupValue: radioFlag,),
Text('女:'),
Radio(value: 2, onChanged: (val) { setState(() {radioFlag = val;});}, groupValue: radioFlag,),
Text('保密:'),
Radio(value: 3, onChanged: (val) { setState(() {radioFlag = val;});}, groupValue: radioFlag,),
],
),
RadioListTile(value: 1, title: Text('123'), subtitle: Text('456'), secondary: Icon(Icons.home), groupValue: radioFlag, onChanged: (val) { setState(() {radioFlag = val;});}),
RadioListTile(value: 2, title: Text('123'), subtitle: Text('456'), secondary: Icon(Icons.home), groupValue: radioFlag, onChanged: (val) { setState(() {radioFlag = val;});}),

Flutter 中的表单的更多相关文章

  1. flutter中的表单使用

    Flutter 中常见的表单有 TextField 单行文本框,TextField 多行文本框.CheckBox.Radio.Switch.CheckboxListTile.RadioListTile ...

  2. 25.Flutter中的表单 Radio RadioListTile Switch SwitchListTile 以及表单组件实现一个简单的学员登记系统(下)

    四.Radio.RadioListTile单选按钮组件 Radio常用属性: value单选的值. onChanged改变时触发. activeColor:选中的颜色.背景颜色 groupValue: ...

  3. AngularJS中的表单验证

    AngularJS中的表单验证 AngularJS自带了很多验证,什么必填,最大长度,最小长度...,这里记录几个有用的正则式验证 1.使用angularjs的表单验证 正则式验证 只需要配置一个正则 ...

  4. MVC中处理表单提交的方式(Ajax+Jquery)

    MVC中处理表单有很多种方法,这里说到第一种方式:Ajax+Jquery 先看下表单: <form class="row form-body form-horizontal m-t&q ...

  5. angular中的表单验证

    angular中的表单验证很强大, 一共有5中验证信息,$valid,$invalid,$pristine,$dirty,$error. $valid-----当验证通过的时候,为true,不通过的时 ...

  6. MVC中Form表单的提交

    概述 Web页面进行Form表单提交是数据提交的一种,在MVC中Form表单提交到服务器.服务端接受Form表单的方式有多种,如果一个Form有2个submit按钮,那后台如何判断是哪个按钮提交的数据 ...

  7. Excel中的表单控件和active控件

    EXCEL中有两种控件:表单控件和active控件 表单控件是excel5和excel95开始使用的,从excel97开始,active控件开始出现 关于表单控件和active控件的区别和使用范围,网 ...

  8. YII中的表单挂件

    利用助手(widget)在页面实现表单 控制器中 <?php class YiiFormController extends Controller { public function actio ...

  9. django中form表单的提交:

    一,关于表单: 表单在百度百科的解释:   表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法. 表单域 ...

随机推荐

  1. caffe+win10+git使用sh文件

    在windows下是否可以执行sh文件呢,搜了一下,可以安装了git就可以执行,当然这不是唯一答案. 然后联想到caffe下有一些.sh文件可以尝试,就用create_mnist.sh尝试把. cre ...

  2. RN开发-组件View,Text

    1.外联js文件(RN自定义组件)        module.exports=Header; 导出模块         const Header=require('./header'); 导入外部j ...

  3. JS Data 时间对象

    new Date() 返回当前的本地日期和时间

  4. 2019-08-07 纪中NOIP模拟B组

    T1 [JZOJ1385] 直角三角形 题目描述 二维平面坐标系中有N个位置不同的点. 从N个点选择3个点,问有多少选法使得这3个点形成直角三角形. 数据范围 $3 \leq N \leq 1500$ ...

  5. 在cc.EventListener.TOUCH_ONE_BY_ONE事件中判断拖动物离哪边近飞向那边

    需将拖动物坐标和要飞向物坐标转化为整个layer的坐标,因为人们判断远近是根据整个layer来看的.

  6. SQL语法(UNION,JOIN)

    SQL语法 union, union all UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 注意,UNION 内部的每个SELECT语句必须拥有相同数量的列.列也必须拥有相似的数 ...

  7. 杭电oj_1713——相遇周期(java实现)

    question:相遇周期 思路: 首先将两个分数化为最简形式(也就是分子分母同时除以最大公约数) 然后题意是要求两个分数的最小公倍数 借助以下两个公式,就可以求出结果 1.最小公倍数*最大公约数 = ...

  8. K3/Cloud树形单据体的rowId赋值

    RowId是树形单据体独有的,同一单据体中不能重复,用如下语句取. System.Guid.NewGuid().ToString() 同时FGROUP也需要重新设置,值可以和FSeq一样.

  9. C++-随机数的产生

    一.随机数 以前学C语言的时候感觉随机数没啥用的,现在想想是自己无知啦,在帮人做一个项目的时候发现随机数还是相当有用的,我们可以利用随机数来生成大量的测试数据. 有两种方法可以让你的程序每次运行结果不 ...

  10. python3练习100题——019

    原题链接:http://www.runoob.com/python/python-exercise-example19.html 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数&q ...