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)}}可以继续扩展的方向继续扩展的话我会把静态选项抽成接口返回的数据再补上空状态和异常状态。示例页面先把核心交互跑通就够了到了业务页面状态边界才是真正容易出问题的地方。

相关新闻

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

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

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

2026/7/23 13:58:02 阅读更多 →
C++实现OPC DA客户端:从COM原理到工业数据采集实战

C++实现OPC DA客户端:从COM原理到工业数据采集实战

1. 项目概述:为什么我们需要自己动手写一个OPC客户端?在工业自动化领域,数据是流淌的血液。无论是PLC的温度读数、机器人的运行状态,还是生产线的产量统计,这些数据都需要被采集、监控和分析。OPC(OLE for …

2026/7/23 1:49:31 阅读更多 →
Unity游戏翻译自动化:5大核心功能实现高效本地化工作流

Unity游戏翻译自动化:5大核心功能实现高效本地化工作流

1. 项目概述:为什么Unity游戏翻译需要自动化? 做独立游戏或者中小型手游的朋友,肯定都遇到过这个头疼的问题:游戏做完了,内容很棒,想上架海外市场多赚点钱,结果被翻译给卡住了。文本散落在各个P…

2026/7/23 2:42:05 阅读更多 →

最新新闻

RAG技术解析:检索增强生成在智能问答中的应用

RAG技术解析:检索增强生成在智能问答中的应用

1. RAG技术初探:当检索遇到生成 第一次接触RAG(Retrieval-Augmented Generation)这个概念时,我正在处理一个智能客服系统的语义理解难题。传统生成式模型常常给出"一本正经胡说八道"的答案,而基于检索的系统…

2026/7/23 14:23:56 阅读更多 →
凌晨两点,一个包裹“开口说话”:它记住了自己被摔下的那一刻

凌晨两点,一个包裹“开口说话”:它记住了自己被摔下的那一刻

0 引言:一次真实的故障溯源某智能设备被客户退回,外包装完好、屏幕无碎裂,但开机后工作状态时好时坏。客户、物流公司与生产部门各执一词。工程师经过外观检查未发现明显磕碰痕迹,最终通过读取设备内部的运动记录数据,…

2026/7/23 14:23:56 阅读更多 →
AI Agent技术解析与开发实战指南

AI Agent技术解析与开发实战指南

1. 为什么AI Agent成为程序员必须掌握的技能2024年,AI Agent技术已经从实验室走向产业应用,成为改变软件开发范式的关键力量。作为一名从业15年的全栈开发者,我亲眼见证了从传统编程到AI驱动的转变过程。AI Agent不再是科幻概念,而…

2026/7/23 14:23:56 阅读更多 →
Dify部署中Internal Server Error问题分析与解决

Dify部署中Internal Server Error问题分析与解决

1. Dify部署中的Internal Server Error问题概述 最近在Dify社区中,许多用户反馈在部署Dify时遇到了"Internal Server Error"问题。这个错误通常表现为访问Dify控制台时返回500状态码,严重影响了平台的正常使用。从GitHub讨论区的反馈来看&…

2026/7/23 14:23:56 阅读更多 →
Narwal Flow 2 扫地机器人评测:避障拖地出色,吸尘稍逊,不同家庭按需选!

Narwal Flow 2 扫地机器人评测:避障拖地出色,吸尘稍逊,不同家庭按需选!

Narwal Flow 2:评分 4/5,优缺点并存的出色扫地机器人它在避障和拖地方面表现出色,但也存在应用操作不直观和中长毛地毯吸尘一般的问题。售价 1499.99 美元,可在亚马逊购买。优点剖析避障能力一流:在避障方面表现最佳。…

2026/7/23 14:23:56 阅读更多 →
AI Agent 的权限最小化:每个 agent 实例只拿到完成任务的最小权限集合

AI Agent 的权限最小化:每个 agent 实例只拿到完成任务的最小权限集合

AI Agent 的权限最小化:每个 agent 实例只拿到完成任务的最小权限集合 一、AI Agent 权限过多的灾难场景 先看一个真实可能发生的场景:你给 Agent 配了文件读取权限和 Shell 执行权限,让它帮你"分析 /var/log 下的日志,找出…

2026/7/23 14:22:55 阅读更多 →

日新闻

从单点好评到指数级传播: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 阅读更多 →

月新闻