第一百二十三回 单选列表和复选列表


我们在上一章回中介绍了扩展内容相关的知识,本章回中将介绍 单选列表和复选列表.闲话休提,让我们一起Talk Flutter吧。

知识回顾

我们在本章回中将介绍单选和复选列表,它们是常用的组件,不只在移动平台中使用,在其它平台上也经常被使用,比如web,windows。因此,我就不介绍它们的概念了。

在Flutter中使用RadioListTileCheckboxListTile组件表示单选和复选列表,我们在本章回中介绍它们是因为上一章回中介绍了ExpansionTile组件,这些组件的功能类似:都用来当作ListView的子项。此外,我们还将介绍另外一个功能相似的组件:SwitchListTile

使用方法

单选列表的功能,我们在前面章回中介绍过,如果有看官忘记的话可以点击这里查看以前的博客。我们在本章回中重点介绍CheckboxListTileSwitchListTile这两个组件。和其它组件类似,这两个组件提供了相关的属性来控制自己,下面是常用的属性:

  • 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数值就可以。我在这里就不演示程序的运行方法了,建议大家自己动手去实践。

看官们,关于"单选和复选列表"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

talk_8

真诚赞赏,手有余香

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

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

打赏作者

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

抵扣说明:

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

余额充值