摘要:控件练习地址一。勾选框勾选框,继承于所以本身他是没有状态的,一般都是在父控件中加入有状态的控件来给他设置。
flutter控件练习demo地址:github
一。CheckBox(勾选框)
CheckBox 勾选框,继承于 StatefulWidget, 所以本身他是没有状态的 Widget ,一般都是在 父 控件中加入有状态的控件来给他设置。
1.1 属性
tristate: 默认这个是false,此时 value 必定不能是null, 可以设置 为 true,此时 value 可以是任意值
value: 这个值不能是null(除非上面 tristate 是true) , 用来设置 此 checkbox 是否选中
onChanged: 是否选中发生变化时的回调, 回调的 bool 值 就是是否选中 ,true 就是选中
activeColor: 勾选后 勾选框填充的颜色 默认是 ThemeData.toggleableActiveColor
checkColor: 对勾的颜色 默认的是白色
materialTapTargetSize:
二。CheckboxListTile(有标题的Checkbox)
2.1 属性
value: // 必须要的属性,是否选定
onChanged: 是否选中发生变化时的回调, 回调的 bool 值 就是是否选中 , true 是 选中
activeColor: 选中时 checkbox 的填充的颜色
title: 标题, 具有代表性的就是 Text
subtitle: 副标题(在 title 下面), 具有代表性的就是 Text
isThreeLine = false:// 是否是三行文本
true : 副标题 不能为 null
false:如果没有副标题 ,就只有一行, 如果有副标题 ,就只有两行
dense: 是否密集垂直
secondary: 左边的一个控件
selected = false: text 和 icon 的 color 是否 是 activeColor 的颜色
controlAffinity = ListTileControlAffinity.platform:
ListTileControlAffinity.platform 根据不同的平台,来显示 对话框 的位置
ListTileControlAffinity.trailing:勾选在右,title 在中,secondary 在左
ListTileControlAffinity.leading :勾选在左,title 在中,secondary 在右
三 实例截图
四 代码
import "package:flutter/material.dart";
import "package:fluttertoast/fluttertoast.dart";
class CheckBoxDemo extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return Scaffold(
appBar: AppBar(
title: Text("CheckBox"),
centerTitle: true,
),
body: _Stateful(),
);
}
}
class _Stateful extends StatefulWidget {
@override
State createState() {
// TODO: implement createState
return _CheckBoxState();
}
}
class _CheckBoxState extends State {
bool _isCheck;
bool _isMale;
bool _isFemale;
bool _checkboxListChecked;
bool _checkboxList2Checked;
@override
void initState() {
super.initState();
_isCheck = false;
_isMale = true;
_isFemale = false;
_checkboxListChecked = false;
_checkboxList2Checked = false;
}
@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
height: 20,
),
Text("一:Checkbox",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20)),
Checkbox(
// tristate: true,
// 这个值不能是null(除非上面 tristate 是true) , 用来设置 此 checkbox 是否选中
value: _isCheck,
// 勾选后 勾选框填充的颜色 默认是 ThemeData.toggleableActiveColor
activeColor: Colors.red,
// 对勾的颜色 默认的是白色
checkColor: Colors.blue,
// 是否选中发生变化时的回调, 回调的 bool 值 就是是否选中
// true 就是选中
onChanged: (isCheck) {
if (isCheck) {
Fluttertoast.showToast(msg: "改变了:$isCheck");
}
_isCheck = isCheck;
//改变_CheckBoxState
setState(() {});
},
),
Text("用checkbox实现单选,其实就是改值",
style: TextStyle(fontWeight: FontWeight.bold)),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Row(
children: [
Text("男"),
Checkbox(
value: _isMale,
onChanged: (isMan) {
setState(() {
if (isMan) {
_isMale = true;
_isFemale = false;
}
});
},
)
],
),
SizedBox(
width: 20,
),
Row(
children: [
Text("女"),
Checkbox(
value: _isFemale,
onChanged: (isFemale) {
setState(() {
if (isFemale) {
_isFemale = true;
_isMale = false;
}
});
},
)
],
)
],
),
SizedBox(
height: 20,
),
Text("二:CheckboxListTile",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20)),
SizedBox(
width: 250,
child: Column(
children: [
CheckboxListTile(
// 必须要的属性
value: _checkboxListChecked,
//是否选中发生变化时的回调, 回调的 bool 值 就是是否选中 , true 是 选中
onChanged: (isCheck) {
Fluttertoast.showToast(msg: "选的$isCheck");
setState(() {
_checkboxListChecked = isCheck;
});
},
// 选中时 checkbox 的填充的颜色 ,
// selected 如果是 true :
// 如果 不设置 title 和 subtitle 中 text 的 color 的话, text的颜色 跟随 activeColor
activeColor: Colors.red,
// 标题, 具有代表性的就是 Text ,
// selected 如果是 true :
// 如果 不设置 text 的 color 的话, text的颜色 跟随 activeColor
title: Text(
"标题",
style: TextStyle(color: Colors.blueAccent),
),
// 副标题(在 title 下面), 具有代表性的就是 Text , 如果 不设置 text 的 color 的话, text的颜色 跟随 activeColor
subtitle: Text("副标题"),
// 是否是三行文本
// 如果是 true : 副标题 不能为 null
// 如果是 false:
// 如果没有副标题 ,就只有一行, 如果有副标题 ,就只有两行
isThreeLine: true,
// 是否密集垂直
dense: false,
// 左边的一个控件
secondary: Text("secondary"),
// text 和 icon 的 color 是否 是 activeColor 的颜色
selected: false,
controlAffinity: ListTileControlAffinity.trailing,
),
CheckboxListTile(
onChanged: (isCheck) {
setState(() {
_checkboxList2Checked = isCheck;
});
},
selected: false,
value: _checkboxList2Checked,
title: Text("标题2"),
controlAffinity: ListTileControlAffinity.leading,
)
],
)),
],
);
}
}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/6731.html
摘要:控件练习地址一。单选框中的单选框,和一样本身没有状态,必须父亲有状态才能改变值属性此的值当选择此的时候的回调。flutter控件练习demo地址:github 一。Radio (单选框) flutter 中的单选框 , 和 Checkbox 一样 本身没有状态,必须父亲有状态 才能改变值 1.1 属性 value: 此 Radio 的 value 值 onChanged: 当选择此 ...
摘要:是啥是谷歌推出的一套视觉设计语言。比如有的可以换皮肤,而每一套皮肤就是一种设计语言,有古典风呀炫酷风呀极简风呀神马的,而就是谷歌风,有兴趣的同学可以学习了解一下官方原版和中文翻译版,这是每一个产品经理的必修教材。 flutter环境和运行环境搭建好之后,可以开始撸码了,然而当你打开VScode,在打开项目文件夹后,摆在你面前的是main.dart被打开的样子,里面七七八八的已经写好了一...
摘要:布局控件不会直接呈现内容,可看作承载可视控件的容器。布局控件也是可以模拟显示的,通常用于调试布局样式时用到的网格线标尺动画帧等。但是当页面内容需要超出屏幕尺寸时,就用和代替。 不知不觉已经到了第7篇,然而很多萌新玩家可能还是不知道如何堆砌控件,像用CSS一样搭出漂亮的APP界面,我也一样,红红火火恍恍惚惚,直到今天含泪读完Flutter布局基础,仿佛打开了一个全新的世界。 基本概念 在...
摘要:前言最近比较热门,但是成体系的文章并不多,前期避免不了踩坑我这篇文章主要介绍如何使用实现一个比较复杂的手势交互,顺便分享一下我在使用过程中遇到的一些小坑,减少大家入坑作者链接先睹为快本项目支持运行,效果如下对了,顺便分享一下生成的小窍门,建 前言 Flutter最近比较热门,但是Flutter成体系的文章并不多,前期避免不了踩坑;我这篇文章主要介绍如何使用Flutter实现一个比较复杂...
摘要:前言最近比较热门,但是成体系的文章并不多,前期避免不了踩坑我这篇文章主要介绍如何使用实现一个比较复杂的手势交互,顺便分享一下我在使用过程中遇到的一些小坑,减少大家入坑作者链接先睹为快本项目支持运行,效果如下对了,顺便分享一下生成的小窍门,建 前言 Flutter最近比较热门,但是Flutter成体系的文章并不多,前期避免不了踩坑;我这篇文章主要介绍如何使用Flutter实现一个比较复杂...
阅读 1794·2021-09-22 15:54
阅读 2872·2021-09-01 10:42
阅读 3419·2019-08-30 15:56
阅读 1412·2019-08-29 18:46
阅读 2443·2019-08-29 10:57
阅读 2677·2019-08-28 17:57
阅读 3628·2019-08-23 18:14
阅读 819·2019-08-23 17:03