HarmonyOS7 复选框综合面板:用 selectedColor 做好综合选择
文章目录前言案例效果和学习目标从布局读到状态重点代码解释完整代码我的小建议前言这组案例开始进入选择类和调节类组件写业务页面时会经常遇到。这个案例围绕Checkbox 综合使用展开重点不是把属性背下来而是弄清楚状态、组件和用户操作之间怎么连起来。这篇我会把重点放在组合案例上尽量说清楚它在真实页面里有什么用。案例效果和学习目标如果把它放到真实项目里常见位置可能是设置页、筛选页、编辑页或者某个需要快速操作的工具面板。用户点一下、选一下、拖一下页面就应该给出明确反馈。维度内容案例主题Checkbox 综合使用核心 APIselectedColor使用场景综合选择| 文章侧重点 | 组合案例 |从布局读到状态代码结构可以按三层读外层负责页面背景和留白中间卡片承载主要内容内部组件处理具体交互。这样的层级不花哨但维护起来比较舒服。我比较推荐先把状态字段命名清楚。选中项、开关状态、滑块数值最好都能从名字看出用途比随手写flag、value后面省心很多。重点代码解释先看一段连续代码基本能判断这个案例的运行方式。它包含入口组件、状态字段以及一部分核心 UI。EntryComponentstruct CheckboxCompletePanel{StateisShow:booleantrueStateallChecked:booleanfalseStateindeterminate:booleanfalseStateitems:boolean[][false,false,false,false,false]StatedisabledItem:booleanfalseupdateAllState(){constcountthis.items.filter(ii).lengthif(count0){this.allCheckedfalse;this.indeterminatefalse}elseif(countthis.items.length){this.allCheckedtrue;this.indeterminatefalse}else{this.allCheckedfalse;this.indeterminatetrue}}build(){Column(){这段代码可以拆成几块看State保存当前页面状态用户操作之后会触发 UI 更新。selectedColor是案例的关键入口真正的行为通常由它和事件回调一起完成。布局属性服务于业务表达选中、禁用、拖动这些状态最好都能在视觉上看出来。完整代码下面是整理后的完整代码。组件名已经改成CheckboxCompletePanel共享颜色也内置到当前文件里单独复制出来读会更方便。constCOLOR_OPTIONS:Array{name:string;value:string}[{name:蓝色,value:#4D96FF},{name:绿色,value:#6BCB77},{name:黄色,value:#FFD93D},{name:红色,value:#FF6B6B},{name:紫色,value:#9B59B6},{name:橙色,value:#FFA500},{name:青色,value:#00BCD4},{name:粉色,value:#FF69B4},{name:灰蓝,value:#607D8B},{name:深色,value:#333333}]constPAGE_BG_COLOR:string#F5F6FAconstCARD_BG_COLOR:string#FFFFFFconstTHEME_COLOR:string#4D96FFconstSUBTEXT_COLOR:string#8A8A8AEntryComponentstruct CheckboxCompletePanel{StateisShow:booleantrueStateallChecked:booleanfalseStateindeterminate:booleanfalseStateitems:boolean[][false,false,false,false,false]StatedisabledItem:booleanfalseupdateAllState(){constcountthis.items.filter(ii).lengthif(count0){this.allCheckedfalse;this.indeterminatefalse}elseif(countthis.items.length){this.allCheckedtrue;this.indeterminatefalse}else{this.allCheckedfalse;this.indeterminatetrue}}build(){Column(){if(this.isShow){Scroll(){Column(){Text(Checkbox 综合演示).fontSize(16).fontWeight(FontWeight.Bold).margin({bottom:12})Row(){Checkbox().select(this.allChecked).onChange((v:boolean){this.allCheckedvthis.indeterminatefalsefor(leti0;ithis.items.length;i)this.items[i]v})Text(全选所有任务).fontSize(15).fontWeight(FontWeight.Bold).margin({left:8})}.width(100%).padding(10).margin({bottom:8}).backgroundColor(THEME_COLOR10).borderRadius(6)ForEach([0,1,2,3,4],(i:number){Row(){Checkbox().select(this.items[i]).selectedColor(COLOR_OPTIONS[i%COLOR_OPTIONS.length].value).enabled(i!4||!this.disabledItem).onChange((v:boolean){this.items[i]vthis.updateAllState()})Text(任务${i1}${[写代码,写测试,CodeReview,部署上线,写文档][i]}).fontSize(14).margin({left:8})if(i4this.disabledItem){Text(禁用).fontSize(10).fontColor(SUBTEXT_COLOR).padding({left:4,right:4}).borderRadius(3).backgroundColor(#F0F0F0)}}.margin({bottom:10})})Divider().margin({top:8,bottom:8})Row(){Checkbox().select(this.disabledItem).onChange((v:boolean){this.disabledItemv})Text(禁用最后一项任务).fontSize(14).margin({left:8})}}.width(100%).padding(16).backgroundColor(CARD_BG_COLOR).borderRadius(12)}}Text(复选框综合面板Checkbox 综合 - 全选/不确定态/禁用/多色).fontSize(12).fontColor(SUBTEXT_COLOR).margin({top:12})}.width(100%).height(100%).backgroundColor(PAGE_BG_COLOR).padding(16)}}我的小建议继续扩展的话我会把静态选项抽成接口返回的数据再补上空状态和异常状态。示例页面先把核心交互跑通就够了到了业务页面状态边界才是真正容易出问题的地方。

相关新闻

重塑AI的“骨骼”:当精度扩散成为LLM权重的“超级压缩器”

重塑AI的“骨骼”:当精度扩散成为LLM权重的“超级压缩器”

我们正站在一个十字路口。一边是大型语言模型(LLM)爆炸式的智能增长,另一边是训练和部署这些庞然大物时令人窒息的计算成本。如果说GPU是AI的“心脏”,那么模型的**权重(Weights)**就是AI的“骨骼”——它决…

2026/7/21 8:25:41 阅读更多 →
HarmonyOS7 尺码单选列表:用 ForEach 做好尺码选择

HarmonyOS7 尺码单选列表:用 ForEach 做好尺码选择

文章目录前言这个写法的价值组件 API 对照关键代码说明完整代码写在最后前言 这组案例开始进入选择类和调节类组件,写业务页面时会经常遇到。这个案例围绕 Radio 垂直列表 展开,重点不是把属性背下来,而是弄清楚状态、组件和用户操作之间怎么…

2026/7/21 8:25:41 阅读更多 →
树数据结构与遍历算法全面解析

树数据结构与遍历算法全面解析

1. 树的基本概念与核心特性树(Tree)是计算机科学中最基础且应用最广泛的数据结构之一,它模拟了自然界中树的层次结构。与线性结构的数组和链表不同,树是一种非线性的、分层的数据结构,特别适合表示具有层级关系的数据。…

2026/7/23 4:12:51 阅读更多 →

最新新闻

小白程序员必看:传统制造业AI落地调研全记录,收藏这份AI提效秘籍!

小白程序员必看:传统制造业AI落地调研全记录,收藏这份AI提效秘籍!

本文记录了为传统制造业集团进行AI落地调研的完整过程,包括调研前的准备、现场提问与业务拆解、AI适用场景分析、落地场景选择等。调研发现6个AI应用方向,最终选择“报价助手”作为优先落地场景。文章强调AI落地应从最影响赚钱、依赖经验、易出错的环节切…

2026/7/23 13:42:39 阅读更多 →
Apache Superset 1.0核心功能与企业级部署指南

Apache Superset 1.0核心功能与企业级部署指南

1. Apache Superset 1.0里程碑解析 作为数据可视化领域的重要里程碑,Apache Superset 1.0的发布标志着这个开源BI工具正式进入成熟阶段。我在实际企业级部署中发现,这个版本在稳定性、功能完整性和用户体验方面都有显著提升。对于需要自助分析能力的团队…

2026/7/23 13:42:39 阅读更多 →
Dify平台:零代码AI工作流自动化开发实践

Dify平台:零代码AI工作流自动化开发实践

1. Dify平台与Workflow自动化概述 Dify作为一款开源的零代码AI应用开发平台,正在彻底改变传统工作流自动化的实现方式。这个平台最吸引人的特点在于,它让没有编程背景的业务人员也能通过可视化拖拽界面,构建复杂的AI驱动工作流。我在实际项目…

2026/7/23 13:42:39 阅读更多 →
张宗杰与他的合众昌商会:坚守抱团共赢初心,打造数字化时代的创业大家庭

张宗杰与他的合众昌商会:坚守抱团共赢初心,打造数字化时代的创业大家庭

领路携众,顺势远航:合众昌商会的数字化破局与生态进阶之路在数字经济浪潮席卷全球的今天,商业竞争的逻辑正从“单打独斗”向“生态协同”深刻演变。面对瞬息万变的市场风口与日益复杂的经营环境,如何打破信息壁垒、实现资源的高效整合,成为无数创业者亟待破解的时代命题。在这一…

2026/7/23 13:42:39 阅读更多 →
中小B2B贸易型企业适用的ERP系统,金畅逍和其它产品的区别是什么?

中小B2B贸易型企业适用的ERP系统,金畅逍和其它产品的区别是什么?

同样被归入“中小B2B贸易企业ERP”,不同产品解决的却不一定是同一种业务。金畅逍ERP与通用进销存、电商ERP、外贸ERP的核心区别,在于它更聚焦项目型B2B贸易以及“产品销售+技术服务”场景,以客户和合同为业务主线,打通…

2026/7/23 13:42:39 阅读更多 →
GJB/Z299D可靠性预计软件 常见问题FAQ

GJB/Z299D可靠性预计软件 常见问题FAQ

一、操作流程类(使用步骤、导入导出) Q1:软件快速可靠性预计步骤是什么? A:标准操作流程:导出空白表格→录入元器件信息→将表格导入软件→逐行完成器件选型与可靠性预计。若遇到导出空白表格失败的问题&…

2026/7/23 13:41:39 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/22 12:54:44 阅读更多 →

月新闻