我们在上一章回中介绍了扩展内容相关的知识,本章回中将介绍单选列表和复选列表.闲话休提,让我们一起Talk Flutter吧。
知识回顾
我们在本章回中将介绍单选和复选列表,它们是常用的组件,不只在移动平台中使用,在其它平台上也经常被使用,比如web,windows。因此,我就不介绍它们的概念了,
在Flutter中使用RadioListTile和CheckboxListTile组件表示单选和复选列表,我们在本章回中介绍它们是因为上一章回中介绍了ExpansionTile组件,这些
组件的功能类似:都用来当作ListView的子项。此外,我们还将介绍另外一个功能相似的组件:SwitchListTile。
使用方法
单选列表的功能,我们在前面章回中介绍过,如果有看官忘记的话可以点击这里查看以前的博客。我们在本章回中重点介绍CheckboxListTile和SwitchListTile这
两个组件。和其它组件类似,这两个组件提供了相关的属性来控制自己,下面是常用的属性:
- title属性:用来显示组件的标题,通常在图标左侧显示;
- tileColor属性:用来控制整个组件的背景颜色;
- activeColor属性: 用来控制组件被选中时的颜色;
- value属性: 用来控制组件是否被选中,true表示选中false表示未选中;
- onChanged属性:它是方法类型的属性,点击组件时回调该属性对应的方法;
在使用属性时通常会在onChanged属性对应的方法中修改value属性的值,然后使用setState()方法更新组件的状态,这样可以实现点击功能:点击组件时选中组件,
再次点点击组件时,未选中组件。稍后我们会在示例代码中进行演示。
示例代码
static int listSize = 3;
static final List<bool?> _checkBoxState = List.generate(listSize, (index) => false);
static final List<bool> _switchState = List.generate(listSize, (index) => false);
CheckboxListTile _checkBoxListTile(index) {
return CheckboxListTile(
///在checkBox左侧显示标题
title: Text("This is item: $index"),
///相当于整个title的背景颜
tileColor: Colors.blue,
///控制checkbox被选中时的颜色
activeColor: Colors.green,
///true表示选中false表示未选中
value: _checkBoxState[index],
onChanged: (v) {
//v的值就是index
debugPrint("value of list $v");
setState(
() {
_checkBoxState[index] = v;
},
);
},
);
}
SwitchListTile _switchListTile(index) {
return SwitchListTile(
title: Text("This is item: $index"),
activeColor: Colors.green,
///用来控制title中文字被选中时的颜色
selected: _switchState[index],
value: _switchState[index],
///点击switch或者它前面的文字时都会回调此方法
onChanged: (v) {
///v的值就是index
debugPrint("value of list $v");
setState(
() {
_switchState[index] = v;
},
);
},
);
}
在上面的示例代码中,我们把组件封装成了单独的方法,方法中包含索引值,该方法配合ListView使用时传入不同的索引值就可以创建出复选框列表和开关列表。如果想
单独使用时传入任意一个int数值就可以。我在这里就不演示程序的运行方法了,建议大家自己动手去实践。
看官们,关于"单选和复选列表"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!