zoukankan      html  css  js  c++  java
  • Flutter form 的表单 input

     点击空白 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;});}),
  • 相关阅读:
    学习过程之python跳一跳
    OSError: [WinError -2147221003] 找不到应用程序: 'QR.png' 的解决方法
    易知大学 任务25 第一次爬虫与测试
    linux常用命令
    健身日志
    JavaScript JSON
    常用注解 开发SpringBoot项目
    网络基础
    jQuery MINI UI 学习之分页查询
    Springboot集成ActivitiModel提示输入密码
  • 原文地址:https://www.cnblogs.com/zhaofeis/p/12346193.html
Copyright © 2011-2022 走看看