HarmonyOS7 复选框综合面板:用 selectedColor 做好综合选择
📅 2026/7/21 8:26:56
👁️ 次浏览
文章目录前言案例效果和学习目标从布局读到状态重点代码解释完整代码我的小建议前言这组案例开始进入选择类和调节类组件写业务页面时会经常遇到。这个案例围绕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)}}我的小建议继续扩展的话我会把静态选项抽成接口返回的数据再补上空状态和异常状态。示例页面先把核心交互跑通就够了到了业务页面状态边界才是真正容易出问题的地方。
1. Python数据库操作实战概述SQLite作为轻量级嵌入式数据库,与Python的结合堪称数据处理领域的"瑞士军刀"。我在实际项目中处理过从简单的用户配置存储到百万级传感器数据的场景,SQLiteSQLAlchemy的组合总能带来惊喜。不同于MySQL等需要独立服…
📅 2026/7/21 8:26:56
1. 项目概述:当.NET遇上YOLO 在工业质检、安防监控、零售分析这些领域,目标检测早已不是什么新鲜事。但作为一个.NET开发者,每次看到那些炫酷的YOLO效果,心里总不是滋味——要么得折腾Python服务做桥接,要么得研究复杂…
📅 2026/7/21 8:26:56
1. 项目背景与核心需求 当我们在开发单片机项目时,经常会遇到一个令人头疼的问题:IO口不够用。特别是当我们需要驱动多个LED、数码管或传感器时,有限的IO资源往往成为项目开发的瓶颈。以常见的51单片机为例,P0-P3四个端口总共只有…
📅 2026/7/21 8:26:56
为什么选择rafx?探索数据驱动渲染框架的10大优势 【免费下载链接】rafx Multi-backend renderer with asset pipeline. The objective of this repo is to build a scalable, flexible, data driven renderer. 项目地址: https://gitcode.com/gh_mirrors/ra/rafx …
📅 2026/7/21 17:24:53
如何扩展和自定义设计模式?Design Patterns In Modern C中的扩展模式解析 【免费下载链接】design-pattern Design Patterns In Modern C 中文版翻译 项目地址: https://gitcode.com/gh_mirrors/des/design-pattern
在软件开发中,设计模式是解决常…
📅 2026/7/21 17:24:53
UNICORN Binance WebSocket API架构解析:深入理解线程管理与连接池设计 【免费下载链接】unicorn-binance-websocket-api A Python SDK to use the Binance Websocket APIs (comtestnet, com-margintestnet, com-isolated_margintestnet, com-futurestestnet, com-c…
📅 2026/7/21 17:24:53
RSpotify实战案例:构建个性化音乐推荐系统的终极指南 【免费下载链接】rspotify Spotify Web API SDK implemented on Rust 项目地址: https://gitcode.com/gh_mirrors/rsp/rspotify
🎵 想要为你的Rust应用添加智能音乐推荐功能吗?RSp…
📅 2026/7/21 17:24:53
本文是基于HarmonyOS API 24的进行的React Native跨平台技术实战项目React Native 跨端鸿蒙开发,行业简称 RNOH(React Native OpenHarmony),是社区 华为共建的适配层方案:把 Meta 的 React Native 框架完整移植到鸿蒙…
📅 2026/7/21 17:24:53
OpenRun Kubernetes部署指南:大规模企业应用的最佳实践 【免费下载链接】openrun Deployment platform for code-first internal tools. Deploy web apps declaratively, on a single-node or on Kubernetes, with OIDC/SAML auth and RBAC. 项目地址: https://gi…
📅 2026/7/21 17:23:53
本文关键词:geo geo测试你是不是也遇到过这种奇葩事?明明你的网站内容写得比同行好,图片更清晰,甚至价格还更低,但在搜索结果里就是排不进去。特别是做本地生意的老板,那种看着隔壁老王明明啥也不是,却天天坐在收银台数钱的滋味,真的憋屈。我最近为了搞懂这个所谓的“地…
📅 2026/7/21 0:00:39
1. Octane Render与C4D的黄金组合:为什么选择这个方案?在三维创作领域,渲染器的选择往往决定了作品的最终呈现质量和工作效率。作为Cinema 4D(C4D)用户,Octane Render的GPU加速特性与实时预览功能ÿ…
📅 2026/7/21 0:00:41
1. GPMC接口设计:从硬件连接到软件配置的全局视角在嵌入式系统开发中,尤其是基于TI Sitara系列如AM263x这类高性能微控制器的项目里,外部存储器的扩展几乎是绕不开的一环。无论是存放大量非易失性代码的NOR Flash,还是作为高速数据…
📅 2026/7/21 0:00:41
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/21 1:04:03
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/21 1:04:03
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/21 1:04:03
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/21 7:04:23
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/21 17:04:52
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/21 5:04:16