Flutter 输入组件 Checkbox 详解

目录

[1. 引言](#1. 引言)

[2. Checkbox 的基本用法](#2. Checkbox 的基本用法)

[3. 主要属性](#3. 主要属性)

[4. 自定义 Checkbox 样式](#4. 自定义 Checkbox 样式)

[4.1 带文本标签的 CheckboxListTile](#4.1 带文本标签的 CheckboxListTile)

​编辑

[4.2 使用 tristate 设置三种状态](#4.2 使用 tristate 设置三种状态)

[5. 结论](#5. 结论)

相关推荐


1. 引言

在 Flutter 中,Checkbox 是一个常用的多选组件,适用于设置开关选项、同意协议、筛选条件等场景。Checkbox 允许用户勾选或取消勾选,并可通过 valueonChanged 进行状态管理。本文将介绍 Checkbox 的基本用法、主要属性及自定义样式。

2. Checkbox 的基本用法

Checkbox 需要 value 设定当前选中状态,并通过 onChanged 监听用户交互。

Dart 复制代码
bool isChecked = false;

Checkbox(
  value: isChecked,
  onChanged: (bool? newValue) {
    setState(() {
      isChecked = newValue!;
    });
  },
)

3. 主要属性

属性 说明
value 复选框的当前状态(true 选中,false 未选中)
onChanged 状态变更时的回调函数
activeColor 复选框选中时的颜色
checkColor 复选标记的颜色
tristate 是否支持三态(true / false / null
shape 自定义复选框形状

示例:

Dart 复制代码
Checkbox(
  value: true,
  activeColor: Colors.blue,
  checkColor: Colors.white,
  shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5)),
  onChanged: (bool? newValue) {},
)

4. 自定义 Checkbox 样式

4.1 带文本标签的 CheckboxListTile

Dart 复制代码
CheckboxListTile(
  title: Text('同意条款'),
  value: isChecked,
  onChanged: (bool? newValue) {
    setState(() {
      isChecked = newValue!;
    });
  },
)

4.2 使用 tristate 设置三种状态

Dart 复制代码
Checkbox(
  tristate: true,
  value: null, // 三态:选中、未选中、部分选中(null)
  onChanged: (bool? newValue) {},
)

5. 结论

Checkbox 是 Flutter 中用于多选的核心组件,适用于多种交互场景。可以结合 CheckboxListTile 提供更丰富的 UI,支持 activeColorshapetristate 等自定义配置。熟练掌握 Checkbox 的使用,有助于创建更友好的用户体验。

相关推荐

Flutter IconButton完全指南:高效使用与性能优化秘籍-CSDN博客文章浏览阅读1.4k次,点赞46次,收藏24次。IconButton 是一个带有图标的按钮组件,通常用于工具栏、导航栏或交互操作。IconButton 继承自 StatelessWidget,支持点击事件、大小、颜色等多种自定义属性。本文将介绍 IconButton 的基本用法、主要属性及自定义样式。https://shuaici.blog.csdn.net/article/details/146069934Flutter TextField 从入门到精通:掌握输入框的完整指南-CSDN博客文章浏览阅读916次,点赞39次,收藏29次。本文全面解析 Flutter TextField 控件的使用技巧,覆盖从基础到进阶的完整知识体系。入门部分讲解基础属性(controller、decoration)、键盘类型设置和文本监听;进阶部分深入探讨表单验证(Form+TextFormField)、自定义输入格式(正则表达式验证)、动态样式修改(圆角/图标/动画)以及高级功能(输入长度限制、防抖处理)。通过代码示例演示手机号输入验证、密码隐藏切换、输入掩码等实战场景,并提供多平台适配、性能优化和无障碍访问等最佳实践方案。_flutter textfieldhttps://shuaici.blog.csdn.net/article/details/146068520

相关推荐
码农coding1 小时前
android12 systemUI 之锁屏
android
AI云海1 小时前
iOS 多 Target 打包、UAT/生产测试与上架 App Store 全流程指南
ios
圆山猫1 小时前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v
爱笑鱼1 小时前
Binder(七):getCallingUid() 读到的是谁?clearCallingIdentity() 又清掉了什么?
android
阿里超级工程师3 小时前
最新快速申请ios打包证书和profile文件步骤
ios·打包证书
落叶飘飘s7 小时前
餐饮服务与软件创新的融合:解析海底捞 APP 的 Flutter 鸿蒙开发之路
flutter·华为·harmonyos
2501_915909067 小时前
iOS 应用反调试技详解术 检测调试器的原理与防护实践
android·ios·小程序·https·uni-app·iphone·webview
Lvan的前端笔记7 小时前
AndroidX 完全入门指南
android·androidx
游戏开发爱好者88 小时前
TraceEagle 代理抓包详解,无感代理、去证书绑定与 HTTP/3 解密能力解析
网络协议·计算机网络·网络安全·ios·adb·https·udp
帅次8 小时前
Android 应用高级面试:Window 近1年高频追问 18 题
android·面试·职场和发展