效果图:

Radio.dart

FormDemo.dart

Radio.dart

import 'package:flutter/material.dart';class RadioPage extends StatefulWidget {@override_RadioPageState createState() => _RadioPageState();
}class _RadioPageState extends State<RadioPage> {int sex=1;bool flag = true;@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('Radio'),),body: Padding(padding: EdgeInsets.all(20),child: Column(children: <Widget>[
//            Row(
//              children: <Widget>[
//                Text('男: '),
//                Radio(                      //类似单选按钮组
//                  value: 1,
//                  onChanged: (v){         //Radio改变时,触发事件
//                    setState(() {   //重新渲染界面
//                      this.sex=v;
//                    });
//                  },
//                  groupValue: this.sex,   //如果这里的值是一样的,说明都是属于同一个人单选按钮组
//                ),
//                SizedBox(width: 20,),
//                Text('女: '),
//                Radio(                    //类似单选按钮组
//                  value: 2,
//                  onChanged: (v){       //Radio改变时,触发事件
//                    setState(() {   //重新渲染界面
//                      this.sex=v;
//                    });
//                  },
//                  groupValue: this.sex,   //如果这里的值是一样的,说明都是属于同一个人单选按钮组
//                )
//              ],
//            ),
//            Row(
//              children: <Widget>[
//                Text('${this.sex}'),          //打印下标
//                Text(this.sex==1?'男':'女')   //利用三目运算符,打印值
//              ],
//            ),SizedBox(height: 40,),RadioListTile(value: 1,onChanged: (v){         //Radio改变时,触发事件setState(() {   //重新渲染界面this.sex=v;});},groupValue: this.sex,   //如果这里的值是一样的,说明都是属于同一个人单选按钮组title: Text('标题'),subtitle: Text('这是二级标题'),secondary: Icon(Icons.help),    //设置:  图标selected: this.sex==1,    //选中时,文字发亮),RadioListTile(value: 2,onChanged: (v){         //Radio改变时,触发事件setState(() {   //重新渲染界面this.sex=v;});},groupValue: this.sex,   //如果这里的值是一样的,说明都是属于同一个人单选按钮组title: Text('标题'),subtitle: Text('这是二级标题'),secondary: Image.network('https://www.itying.com/images/flutter/1.png'), //加载远程图片selected: this.sex==2,    //选中时,文字发亮),SizedBox(height: 40,),Switch(               //Android里的开关按钮value: this.flag,onChanged: (v){setState(() {print((v));this.flag=v;});},)],),),);}
}

FormDemo.dart

import 'package:flutter/material.dart';class FormDemoPage extends StatefulWidget {@override_FormDemoPageState createState() => _FormDemoPageState();
}class _FormDemoPageState extends State<FormDemoPage> {String username;int sex=1;  //默认1是男String info = '';List hobby=[{'checked':true,'title':'吃饭'},{'checked':false,'title':'睡觉'},{'checked':true,'title':'写代码'},];List<Widget> _getHobby(){   //返回多个checkBox集合List<Widget> tempList=[];for(var i=0;i<this.hobby.length;i++){//写法一:tempList.add(Text(this.hobby[i]['title']+":"));tempList.add(Checkbox(value: this.hobby[i]['checked'],onChanged: (value){setState(() {this.hobby[i]['checked']=value;});},));//写法二:
//      tempList.add(
//          Row(
//            children: <Widget>[
//              Text(this.hobby[i]['title']+":"),
//              Checkbox(
//                value: this.hobby[i]['checked'],
//                onChanged: (value){//                  setState(() {//                    this.hobby[i]['checked']=value;
//                  });
//                },
//              )
//            ],
//          )
//      );}return tempList;}void _sexChanged(value){    //将单选组按钮的监听器抽离出来setState(() {this.sex=value;});}@overrideWidget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('学员信息登记系统'),),body: Padding(padding: EdgeInsets.all(20),child: Column(children: <Widget>[TextField(decoration: InputDecoration(hintText: '输入用户信息'),onChanged: (value){setState(() {this.username=value;});},),SizedBox(height: 10,),Row(children: <Widget>[Text('男'),Radio(value: 1,onChanged: this._sexChanged,groupValue: this.sex,),SizedBox(width: 20,),Text('女'),Radio(value: 2,onChanged: this._sexChanged,groupValue: this.sex,)],),//爱好SizedBox(height: 40,),Wrap(children: this._getHobby(),),SizedBox(height: 20,),TextField(maxLines: 4,decoration: InputDecoration(hintText: '描述信息',border: OutlineInputBorder()),onChanged: (value){setState(() {this.info=value;});},),SizedBox(height: 40,),Container(width: double.infinity,   //表示Container的宽度变成自适应宽度height: 40,child: RaisedButton(child: Text('提交信息'),onPressed: (){print(this.sex);   //获取单选按钮的值print(this.username);   //获取文本框的值print(this.hobby);    //获取多选框的值print(this.info);   //获取描述信息},color: Colors.blue,textColor: Colors.white,),)],),),);}
}

Futter基础第17篇: 实现多行文本框、开关按钮、多选框、单选按钮、RadioListTile、Radio、表单相关推荐

  1. html制作单选网页程序,网页制作基础:单选框和复选框的应用_html

    在用表单设计调查表时,为了减少用户的操作,使用选择框是一个好主意,在html的标记中有两种选择框,即单选框和复选框,两者的区别是单选框中的选项用户只能选择一项,而复选框中的选项用户可以任意选择多项,甚 ...

  2. html表格中插入单行文本框,el-table复选框选中单行或多行点击按钮禁用el-table里面的input输入框该怎么判断?...

    问题: 1.添加数据后下拉框中未显示带入的数据 2.不可以重复添加相同的数据 3.复选框选中单行或多行以后点击按钮禁用对于行的input 大神们 帮忙看看怎么解决啊. Title v-model=&q ...

  3. 页面使用html生成一个n行n列表格,HTML静态网页:表格、表单

    一.表格table table的属性 width        宽度,可以用百分比或者像素,像素常用960 border       边框,常用值是0 cellpadding  表格内容与单元格边框的 ...

  4. Futter基础第3篇: 实现引用远程图片、本地图片、实现圆形图片,实现圆角图片【Image.network、Image.asset、BorderRadius.circular(150)】

    文章目录 一丶 效果图 二丶 代码+注释 三丶 知识点 一丶 效果图 [1]引用远程图片 [2]引用本地图片 [3]实现圆形图片(方法一).圆角图片(受弧度影响) [4]实现圆形图片(方法二) 二丶 ...

  5. 零基础HTML入门教程(17)——表单的单选框和复选框

    本章目录 1.任务目标 2.单选框radio 3.复选框checkbox 4.小结 1.任务目标 我们上一小结学习了,密码输入框和文本输入框,我们这一小结学习复选框和单选框. 2.单选框radio 单 ...

  6. Web开发——HTML基础(HTML表单/下拉列表/多行输入)

    参考: 参考:http://www.w3school.com.cn/html/html_forms.asp 目录: 1.<form> 元素 1.1 <input> 元素(输入属 ...

  7. Android基础第四篇

    转载请标明出处: http://blog.csdn.net/gj782128729/article/details/52350060: 本文出自:[高境的博客] 1. Html简介 1.1. 什么是H ...

  8. 前端基础(17):图片整合提高浏览器速度

    图片整合 1.图片整合的概念,使用图片整合的优势 2.实现图片整合的方法和技巧 3.滑动门的概念 4.浏览器的兼容的概念及原因 5.常见的CSS bug及CSS hack 一.图片整合的概念,使用图片 ...

  9. HTML 基础【2】 -- 表格标签 / 表单标签

    请先学习往期内容:HTML 基础[1] – 入门介绍 / 基本结构 / 块级标签 / 行内标签 作业分析 上一篇<HTML 基础[1] – 入门介绍 / 基本结构 / 块级标签 / 行内标签&g ...

  10. HTML5基础学习——列表标签表单标签

    学习内容: 1.列表标签 表格是用来显示数据的,那么列表就是用来布局的. 列表最大的特点就是整齐.整洁.有序,它作为布局会更加自由和方便. 根据使用场景不同,列表可以分为三大类:无序列表.有序列表和自 ...

最新文章

  1. JSON解析与XML解析的区别
  2. 离用户近一点,再近一点
  3. 【OpenCV3】棋盘格角点检测与绘制——cv::findChessboardCorners()与cv::drawChessboardCorners()详解
  4. 一文了解文件上传全过程(1.8w字深度解析)「前端进阶必备」
  5. #时间预测算法_基于超级学习者机器学习算法预测ICU患者急性低血压发作
  6. 如何成为数据科学家_成为数据科学家的5大理由
  7. 晴天php下载,x.php · 一步晴天/smart - Gitee.com
  8. python语言format用法_python格式化输出之format用法
  9. hbase的2.2.4版本支持哪个版本的hadoop_2019 年,Hadoop 还是数据处理的可选方案吗?...
  10. 07. Declare destructors virtual in polymorphic base classes
  11. 宗成庆统计自然语言处理第二版第13章读书笔记-文本分类与情感分类
  12. STM32电机控制--API函数应用
  13. 《白帽子讲web安全》第一篇 世界观安全
  14. Solidworks常用插件介绍
  15. 1.新建laravel项目
  16. a8处理器相当于骁龙几_天玑720属于骁龙多少 天玑720处理器相当于骁龙几
  17. 路由器修改wifi密码
  18. canvas画圆环(一)之渐变色,纯色
  19. jmeter获取token并请求失败Internal authentication failed 400
  20. 程序员的中年危机及路在何方?

热门文章

  1. web前端(八)——ajax与jsonp
  2. 【8.16校内测试】【队列】【数学】【网络流/二分图最大匹配】
  3. Spring AOP失效之谜
  4. 准备 macvlan 环境 - 每天5分钟玩转 Docker 容器技术(54)
  5. 设计模式之职责链(Chain of Responsibility)
  6. ICLR'22 | 图机器学习最近都在研究什么?
  7. 从Label Smoothing和Knowledge Distillation理解Soft Label
  8. 看了这份《算法中文手册》笔记,就再也不怕字节了~
  9. 【综述】详解ERNIE-Baidu进化史及应用场景
  10. “不怕的人的面前才有路”!一名双非硕士的985攻博历程