第四十四回:RadioListTile Widget

文章介绍了Flutter中的RadioListTileWidget,它是一个可显示文字的单选按钮组件。文中详细阐述了RadioListTile的关键属性如title、subtitle、selected、value、groupValue和onChanged,并通过示例代码展示了如何控制按钮颜色和响应用户选择。文章鼓励读者通过实践来体验和理解RadioListTileWidget的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


我们在上一章回中介绍了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的内容就介绍到这里,欢迎大家在评论区交流与讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值