Flutter Checkbox CheckboxListTile

Flutter 系列文章 总体目录

Checkbox本身不包含任何状态,改变状态需要通过改变value的值改变。

属性 说明
value true:选中状态。false:不选中状态。null:只有在tristate=true时可设置此值
tristate 设置true时,value才能为null,代表当前控件的第三种状态
onChanged 变化时回调
activeColor 选中状态时的颜色
materialTapTargetSize 点击区域尺寸,padded:向四周扩展48px区域 shrinkWrap:控件区域

CheckboxListTile 是在Checkbox基础上添加ListTile,除了和Checkbox相同的属性外还有一些自己的属性:

属性 说明
title、subtitle、secondary 如图的位置Flutter Checkbox CheckboxListTile_第1张图片
selected 为true时icon和text的颜色为activeColor
controlAffinity leading:secondary在开头位置,trailing:secondary在结尾位置,platform:根据平台确定

例子:

import 'package:flutter/material.dart';
import 'package:flutter/scheduler.dart';

class CheckboxDemo extends StatefulWidget {
  @override
  State createState() => _CheckboxDemo();
}

class _CheckboxDemo extends State {
  bool _newValue = true;
  bool _newValue1;
  bool _newValue2 = true;

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Column(
      children: [
        Checkbox(
          value: _newValue,
          activeColor: Colors.red,
          onChanged: (newValue) {
            setState(() {
              _newValue = newValue;
            });
          },
        ),
        Checkbox(
          value: _newValue1,
          onChanged: (newValue) {
            setState(() {
              _newValue1 = newValue;
            });
          },
          tristate: true,
          materialTapTargetSize: MaterialTapTargetSize.padded,
        ),
        CheckboxListTile(
          value: _newValue2,
          onChanged: (newValue) {
            setState(() {
              _newValue2 = newValue;
              timeDilation = 13;
            });
          },
          title: Text('title'),

        ),

        CheckboxListTile(
          activeColor: Colors.red,
          value: _newValue2,
          onChanged: (newValue) {
            setState(() {
              _newValue2 = newValue;
            });
          },
          title: Text('title'),
          subtitle: Text('subtitle'),
          isThreeLine: false,
          dense: true,
          secondary: Icon(Icons.hourglass_empty),
          selected: true,
          controlAffinity: ListTileControlAffinity.platform,
        ),
      ],
    );
  }
}

Flutter Checkbox CheckboxListTile_第2张图片

交流

如果你对Flutter还有疑问或者技术方面的疑惑,欢迎加入Flutter交流群(微信:laomengit)。

同时也欢迎关注我的Flutter公众号【老孟程序员】,公众号首发Flutter的相关内容。

Flutter地址:http://laomengit.com 里面包含160多个组件的详细用法。

你可能感兴趣的:(Flutter)