HarmonyOS7 禁用单选项:用 enabled 做好不可选项

发布时间:2026/11/2 4:50:45

HarmonyOS7 禁用单选项:用 enabled 做好不可选项 文章目录前言交互链路先理清数据和 UI 的对应关系关键实现细节完整代码可以继续扩展的方向前言这组案例开始进入选择类和调节类组件写业务页面时会经常遇到。这个案例围绕Radio 禁用状态展开重点不是把属性背下来而是弄清楚状态、组件和用户操作之间怎么连起来。这篇我会把重点放在状态边界上尽量说清楚它在真实页面里有什么用。交互链路先理清如果把它放到真实项目里常见位置可能是设置页、筛选页、编辑页或者某个需要快速操作的工具面板。用户点一下、选一下、拖一下页面就应该给出明确反馈。维度内容案例主题Radio 禁用状态核心 APIenabled使用场景不可选项文章侧重点状态边界数据和 UI 的对应关系代码结构可以按三层读外层负责页面背景和留白中间卡片承载主要内容内部组件处理具体交互。这样的层级不花哨但维护起来比较舒服。我比较推荐先把状态字段命名清楚。选中项、开关状态、滑块数值最好都能从名字看出用途比随手写flag、value后面省心很多。关键实现细节先看一段连续代码基本能判断这个案例的运行方式。它包含入口组件、状态字段以及一部分核心 UI。EntryComponentstruct DisabledRadioOptions{StateisShow:booleantrueStateselected:stringnormal1build(){Column(){if(this.isShow){Column(){Text(Radio 禁用状态).fontSize(16).fontWeight(FontWeight.Bold).margin({bottom:12})Text(可用选项).fontSize(13).fontColor(THEME_COLOR).margin({bottom:8})Column(){Row(){Radio({value:normal1,group:enabledGroup}).checked(this.selectednormal1).onChange((c:boolean){if(c)this.selectednormal1})这段代码可以拆成几块看State保存当前页面状态用户操作之后会触发 UI 更新。enabled是案例的关键入口真正的行为通常由它和事件回调一起完成。布局属性服务于业务表达选中、禁用、拖动这些状态最好都能在视觉上看出来。完整代码下面是整理后的完整代码。组件名已经改成DisabledRadioOptions共享颜色也内置到当前文件里单独复制出来读会更方便。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 DisabledRadioOptions{StateisShow:booleantrueStateselected:stringnormal1build(){Column(){if(this.isShow){Column(){Text(Radio 禁用状态).fontSize(16).fontWeight(FontWeight.Bold).margin({bottom:12})Text(可用选项).fontSize(13).fontColor(THEME_COLOR).margin({bottom:8})Column(){Row(){Radio({value:normal1,group:enabledGroup}).checked(this.selectednormal1).onChange((c:boolean){if(c)this.selectednormal1})Text(普通选项 A).fontSize(14).margin({left:8})}.margin({bottom:10})Row(){Radio({value:normal2,group:enabledGroup}).checked(this.selectednormal2).onChange((c:boolean){if(c)this.selectednormal2})Text(普通选项 B).fontSize(14).margin({left:8})}}Divider().margin({top:12,bottom:12})Text(禁用选项).fontSize(13).fontColor(COLOR_OPTIONS[8].value).margin({bottom:8})Row(){Radio({value:disabled1,group:enabledGroup}).enabled(false).checked(false)Text(已禁用的选项).fontSize(14).margin({left:8}).fontColor(SUBTEXT_COLOR)}.margin({bottom:10})Row(){Radio({value:disabled2,group:enabledGroup}).enabled(false).checked(true)Text(禁用但已选中).fontSize(14).margin({left:8}).fontColor(SUBTEXT_COLOR)}}.width(100%).padding(16).backgroundColor(CARD_BG_COLOR).borderRadius(12)}Text(禁用单选项Radio 禁用 - 单个选项和整体禁用).fontSize(12).fontColor(SUBTEXT_COLOR).margin({top:12})}.width(100%).height(100%).backgroundColor(PAGE_BG_COLOR).padding(16)}}可以继续扩展的方向继续扩展的话我会把静态选项抽成接口返回的数据再补上空状态和异常状态。示例页面先把核心交互跑通就够了到了业务页面状态边界才是真正容易出问题的地方。
延伸阅读

更多相关文章

2026/10/27 12:07:32

具身智能的TVA-VLA双引擎架构(7)

前沿技术探索:AI智能体视觉(TVA,Transformer-based Vision Agent)是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术,是集深度强化学习(DRL)、卷积神经网络(CNN…

2026/10/27 0:09:30

华为OD机试高频题:文件目录大小问题的六种语言实现与深度解析

1. 项目概述与核心价值最近在帮几个准备华为OD机试的朋友做模拟练习,发现“文件目录大小”这道题出现的频率相当高,尤其是在2025年的B卷里,它稳稳地占着100分的分值。这道题本身并不算算法里最难的,但它是一个绝佳的“照妖镜”&am…

2026/10/27 19:19:48

C++宿舍管理系统项目实战:从类设计到文件操作完整指南

1. 项目概述与核心价值最近在整理硬盘时,翻出了一个大学时期和室友一起鼓捣的C宿舍管理系统项目。这个项目虽然现在看来代码有些“稚嫩”,但麻雀虽小五脏俱全,涵盖了从需求分析、数据结构设计、文件操作到简单的用户交互界面等C核心知识点。对…

2026/11/2 4:50:04

短剧系统高并发架构与支付闭环实战

1. 项目概述:短剧系统的商业价值与技术挑战短剧内容近年来呈现爆发式增长,这种单集时长3-5分钟的碎片化娱乐形式,特别适合移动互联网时代的用户消费习惯。一个成熟的短剧系统需要同时解决内容生产、高效分发、即时互动和商业变现四大核心需求…

2026/11/2 4:50:04

短剧平台高并发架构设计与支付系统优化实践

1. 项目背景与核心价值短剧内容消费正在成为数字娱乐领域的新风口。根据行业数据显示,2023年国内短剧市场规模同比增长超过300%,单部爆款作品日播放量可达数千万次。这种内容形态具有单集时长短(3-5分钟)、剧情紧凑、制作周期快等…

2026/11/2 4:50:04

三大AI模型开发3D游戏实测:Step 5、DeepSeek、GLM谁更胜一筹?

最近我把几个新模型拉到同一个考场里做了一件挺有意思的事:用完全相同的需求,让 Step 5 Preview、DeepSeek V4 Pro 和 GLM5.3 分别从零做一个 3D 小游戏,然后对比它们从出方案到跑通、再到改需求的全过程。先说结论:三个模型都能写…

2026/11/2 4:50:04

NVIDIA自动驾驶实时检测模型的技术解析与应用

1. 项目概述:自动驾驶实时检测的技术革命NVIDIA自动驾驶实验室最新发布的"用于自主系统的实时检测基础模型"标志着自动驾驶感知技术迈入新阶段。这套解决方案通过深度融合计算机视觉与边缘计算,在嵌入式GPU平台上实现了亚毫秒级的环境感知响应…

2026/11/2 4:50:04

Next.js + LangGraph.js 构建简历 AI Agent 实战

1. 为什么简历工具值得用 AI Agent 重做一遍简历这个赛道,表面上看已经被各种模板站和在线编辑器做烂了,但真正动手做过的人都知道,传统简历工具的天花板非常低。用户打开一个网页,填表单、选模板、导出 PDF,整个链路是…

2026/11/2 4:45:04

Higress底层原理:Gateway API、Envoy深度定制与Wasm沙箱机制解析

1. 为什么今天必须搞懂 Higress 的底层逻辑Higress 不是又一个“换个壳的网关”,它是一次对云原生流量治理范式的重新定义。如果你正在用 Kubernetes 做生产级服务编排,却还在用 Nginx Ingress 手写 rewrite 规则、靠 ConfigMap 硬 reload、为 TLS 终止反…

2026/11/1 0:01:26

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/1 1:01:33

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业级SPI隔离设计:硬件抗扰与信号完整性实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

PLFM_RADAR:主动探测数据通道,构建低误报的数据感知系统

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/2 1:04:04

工业SPI隔离设计:MAX14431与STM32F746硬件抗干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/1 0:01:26

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/1 1:01:33

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑