点击空白 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. javascript download geoserver layer as kml file

     var sqlfilter = " CITY='" + city + "' and SDATE>" + sdate + " and SDATE ...

  2. 不同页面获取同一cookie变量值不同的问题及解决方法

    在使用cookie时发现不同页面获取到的同一个cookie变量的值不同,本篇博客介绍其中一种情况的解决方法,通过设置path的方法可使得在同一个网站下获取的cookie变量一致. 问题描述 在www. ...

  3. 解读Ubuntu的sources.list 和soucres.litsd

    使用过Ubuntu的道友们都知道,默认地址是乌班图的org 配置的,对于国内长途跋涉的各位高手来讲真是艰辛: 所以我们一般在安装的时候会先修改服务器源地址使用国内的比如ali,清华或者华为的 源文件地 ...

  4. HCTF2018-admin[Unicode欺骗]

    看源码发现 在修改密码,登录,注册时都有都用strlower()来转小写 看了网上师傅的wp,经验之谈,python中自带转小写函数lower(),但这里使用strlower(),可能存在猫腻. 跟进 ...

  5. 二分-E - Rikka with Mutex

    E - Rikka with Mutex Sometimes, technical terms implicate some life philosophy. Mutex is one of them ...

  6. JS高级---浅拷贝

    浅拷贝   拷贝就是复制, 就相当于把一个对象中的所有的内容, 复制一份给另一个对象, 直接复制, 或者说, 就是把一个对象的地址给了另一个对象, 他们指向相同, 两个对象之间有共同的属性或者方法, ...

  7. svg 放大缩小后的比例

    function getCoords(evt) { // 计算出当前屏幕与svg的比例    var canvas = document.getElementById("canvase&qu ...

  8. 简单的Spring1.0小配置

    开始Spring AOP的小理解 拿一个小例子来说吧!    老师上课   这样的例子!    老师上课--就是一个核心的业务!     那么上课之前需要点名,天气太热,需要开空调! 这个时候,一个老 ...

  9. 错误:pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

    pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', ...

  10. Go_初始化是否为nil

    package main import ( "fmt" ) func main() { //基本数据类型(默认值) var a int fmt.Println(a) //0 a = ...