我们在上一章回中介绍了Radio Widget相关的内容,本章回中将介绍
RadioListTile
Widget.闲话休提,让我们一起Talk Flutter吧。
概念介绍
我们在这里介绍的RadioListTile
和上一章回中介绍的Radio类似,不同之处在于RadioListTile组件可以显示文字,而Radio组件不能显示文字。文字位于Radio组件右侧,通过显示的文字可以知道Radio表达的含义,因此在实际项目中RadioListTile
使用的情况比较多。本章回中将详细介绍它的使用方法。
使用方法
和其它Widget一样,RadioListTile组件也提供了相关的属性来操作自己,下面是一些常用的属性,掌握这些属性的用法后就可以熟练地使用RadioListTile
组件了:
- title属性:用来控制按钮显示的文字;
- subtitle属性:用来控制按钮显示的文字,相当于子标题;
- selected属性:用来控制显示文字的颜色;
- value属性:表示按钮被选中时的值;
- groupValue属性:表示按钮所有组的值;
- onChanged属性:它是方法类型,按钮被按下时回调此方法;
- activeColor属性:表示按钮被选中时的颜色,如果不修改默认为蓝色;
上面的这几个属性中前三个属性是RadioListTile
特有的,其它属性的作用和Radio组件中同名的属性相同,因此这里不对他们做详细介绍。我们重点介绍selected属性,该属性的类型为布尔类型,属性值为true时titlet和subtitle中显示的文字颜色为ActiveColor,否则为默认颜色(蓝色,与系统主题有关),详细内容可以参考下面的示例代码。
示例代码
RadioListTile(
//在radio右侧显示标题
title: Text("This is item: $index"),
//控制radio和title的颜色
activeColor: Colors.green,
value: _checkState,
groupValue: _groupValue,
//属性值为true时title颜色为ActiveColor,否则为默认值
selected: (_groupValue == _checkState),
onChanged: (v) {
//v的值就是index
print("value of list $v");
setState(
() {
if (_checkState == _groupValue) {
_groupValue = v + 1;
} else {
_groupValue = v;
}
},
);
},
);
上面的代码只是核心代码,完整的代码可以查看Github中ex024文件中的内容。为了方便使用,我们把RadioListTitle组件封装到方法中,然后把该方法赋值给column组件的children属性,多放几个这样的方法就形成了一个包含多个单选按钮的组,我们称其为单选按钮组,这也是常用的做法。
按钮选中状态的变化和上一章回中Radio组件示例代码相同。此外,我们还给selected
属性进行了赋值操作,这样可以保证按钮被选中时按钮的图标和文字的颜色一起变化。我在这里就不演示程序的运行结果了,建议大家自己动手去实践。
看官们,关于RadioListTile Widget
的内容就介绍到这里,欢迎大家在评论区交流与讨论!