HarmonyOS7 权限禁用菜单:用 enabled 做好权限操作
文章目录前言适合放在哪些页面里页面结构拆一下核心逻辑说明完整代码最后提醒一句前言这组案例开始进入选择类和调节类组件写业务页面时会经常遇到。这个案例围绕Menu 禁用项与权限控制展开重点不是把属性背下来而是弄清楚状态、组件和用户操作之间怎么连起来。这篇我会把重点放在状态保护上尽量说清楚它在真实页面里有什么用。适合放在哪些页面里如果把它放到真实项目里常见位置可能是设置页、筛选页、编辑页或者某个需要快速操作的工具面板。用户点一下、选一下、拖一下页面就应该给出明确反馈。维度内容案例主题Menu 禁用项与权限控制核心 APIenabled使用场景权限操作文章侧重点状态保护页面结构拆一下代码结构可以按三层读外层负责页面背景和留白中间卡片承载主要内容内部组件处理具体交互。这样的层级不花哨但维护起来比较舒服。我比较推荐先把状态字段命名清楚。选中项、开关状态、滑块数值最好都能从名字看出用途比随手写flag、value后面省心很多。核心逻辑说明先看一段连续代码基本能判断这个案例的运行方式。它包含入口组件、状态字段以及一部分核心 UI。EntryComponentstruct PermissionMenuPanel{StateisShow:booleantrueStateisMenuOpen:booleanfalseStatehasPermission:booleanfalsebuild(){Column(){if(this.isShow){Column({space:14}){Text(带禁用项的菜单).fontSize(14).fontColor(THEME_COLOR).fontWeight(600)Row({space:8}){Text(this.hasPermission?☑:☐).fontSize(20).fontColor(this.hasPermission?#6BCB77:#CCCCCC).onClick((){this.hasPermission!this.hasPermission})Text(高级权限).fontSize(14).fontColor(#333333)}这段代码可以拆成几块看State保存当前页面状态用户操作之后会触发 UI 更新。enabled是案例的关键入口真正的行为通常由它和事件回调一起完成。布局属性服务于业务表达选中、禁用、拖动这些状态最好都能在视觉上看出来。完整代码下面是整理后的完整代码。组件名已经改成PermissionMenuPanel共享颜色也内置到当前文件里单独复制出来读会更方便。constPAGE_BG_COLOR:string#F5F6FAconstCARD_BG_COLOR:string#FFFFFFconstTHEME_COLOR:string#4D96FFconstSUBTEXT_COLOR:string#8A8A8AEntryComponentstruct PermissionMenuPanel{StateisShow:booleantrueStateisMenuOpen:booleanfalseStatehasPermission:booleanfalsebuild(){Column(){if(this.isShow){Column({space:14}){Text(带禁用项的菜单).fontSize(14).fontColor(THEME_COLOR).fontWeight(600)Row({space:8}){Text(this.hasPermission?☑:☐).fontSize(20).fontColor(this.hasPermission?#6BCB77:#CCCCCC).onClick((){this.hasPermission!this.hasPermission})Text(高级权限).fontSize(14).fontColor(#333333)}Button(操作菜单).fontSize(15).fontColor(#FFFFFF).backgroundColor(#FF6B6B).borderRadius(8).width(60%).height(44).onClick((){this.isMenuOpentrue}).bindMenu(this.isMenuOpen,[{value:查看信息,action:(){}},{value:编辑内容,action:(){},enabled:this.hasPermission},{value:删除记录,action:(){},enabled:this.hasPermission},{value:导出数据,action:(){},enabled:this.hasPermission}],{onDisappear:(){this.isMenuOpenfalse}})Text(this.hasPermission?已开启高级权限:未开启高级权限部分菜单项禁用).fontSize(12).fontColor(SUBTEXT_COLOR)}.width(100%).alignItems(HorizontalAlign.Center).padding(16).backgroundColor(CARD_BG_COLOR).borderRadius(12)}Text(权限禁用菜单Menu 禁用项部分菜单项不可用).fontSize(12).fontColor(SUBTEXT_COLOR).margin({top:12})}.width(100%).height(100%).backgroundColor(PAGE_BG_COLOR).padding(16)}}最后提醒一句继续扩展的话我会把静态选项抽成接口返回的数据再补上空状态和异常状态。示例页面先把核心交互跑通就够了到了业务页面状态边界才是真正容易出问题的地方。

相关新闻

HarmonyOS7 选中态排序菜单:用 bindMenu 做好排序选择

HarmonyOS7 选中态排序菜单:用 bindMenu 做好排序选择

文章目录前言先看这个案例解决什么状态为什么这样设计关键代码拆开看完整代码落地时我会怎么改前言 这组案例开始进入选择类和调节类组件,写业务页面时会经常遇到。这个案例围绕 Menu 选中状态与排序切换 展开,重点不是把属性背下来,而是弄清…

2026/7/21 7:42:47 阅读更多 →
高性能实时目标检测框架RT-DETR深度解析:从架构设计到生产部署全链路实战指南

高性能实时目标检测框架RT-DETR深度解析:从架构设计到生产部署全链路实战指南

高性能实时目标检测框架RT-DETR深度解析:从架构设计到生产部署全链路实战指南 【免费下载链接】RT-DETR [CVPR 2024] Official RT-DETR (RTDETR paddle pytorch), Real-Time DEtection TRansformer, DETRs Beat YOLOs on Real-time Object Detection. 🔥…

2026/7/25 23:32:54 阅读更多 →
为什么选择Valora?面向初学者的生成艺术工具终极指南

为什么选择Valora?面向初学者的生成艺术工具终极指南

为什么选择Valora?面向初学者的生成艺术工具终极指南 【免费下载链接】valora painting by functions 项目地址: https://gitcode.com/gh_mirrors/va/valora 在当今数字艺术创作领域,Valora 作为一款基于Rust语言开发的生成艺术工具,正…

2026/7/26 3:16:04 阅读更多 →

最新新闻

TMS320C6000 DSP架构解析:从VLIW原理到嵌入式信号处理实战

TMS320C6000 DSP架构解析:从VLIW原理到嵌入式信号处理实战

1. 项目概述与核心价值如果你正在寻找一款能够同时处理多路高清视频流、实现复杂雷达波束成形,或者运行高精度音频算法的嵌入式处理器,那么TMS320C6000系列DSP(数字信号处理器)绝对是一个绕不开的经典平台。我接触这个系列超过十年…

2026/7/26 16:55:59 阅读更多 →
C55x DSP仿真器配置实战:栈模式切换与内存映射优化指南

C55x DSP仿真器配置实战:栈模式切换与内存映射优化指南

1. 项目概述与核心价值在嵌入式DSP开发领域,尤其是针对德州仪器(TI)的C55x系列处理器,仿真器是每一位工程师从算法验证到系统集成都离不开的“左膀右臂”。它不仅仅是一个简单的代码运行环境,更是一个能让我们深入芯片…

2026/7/26 16:55:59 阅读更多 →
终极解决方案:告别DLL缺失错误,一键安装所有Visual C++运行库

终极解决方案:告别DLL缺失错误,一键安装所有Visual C++运行库

终极解决方案:告别DLL缺失错误,一键安装所有Visual C运行库 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经在打开游戏或软件时…

2026/7/26 16:55:59 阅读更多 →
DSP系统PCI配置EEPROM详解:从硬件身份证到资源分配地图

DSP系统PCI配置EEPROM详解:从硬件身份证到资源分配地图

1. 项目概述:从一块EEPROM芯片看DSP系统的“身份证”与“启动地图”在嵌入式系统,尤其是基于DSP(数字信号处理器)的高性能板卡开发中,我们常常会面对一个看似微小却至关重要的组件——配置EEPROM。对于初次接触TI TMS3…

2026/7/26 16:55:59 阅读更多 →
基于NLP与间隔重复的智能读书笔记系统设计

基于NLP与间隔重复的智能读书笔记系统设计

1. 项目背景与核心价值 去年整理书架时,我发现一个尴尬现象:书架上80%的读过书籍,内容已经模糊到只剩"这本书我好像看过"的程度。这种"阅后即焚"的阅读体验,促使我开始探索如何将读书笔记转化为可长期记忆的知…

2026/7/26 16:55:59 阅读更多 →
C++ STL核心组件解析:从容器算法到实战避坑指南

C++ STL核心组件解析:从容器算法到实战避坑指南

1. 项目概述:为什么STL是C程序员的“瑞士军刀”?如果你刚开始接触C,或者已经写过一些控制台程序,但总觉得代码又长又啰嗦,处理数组、字符串、排序、查找这些常见操作时,总在重复造轮子,那么你大…

2026/7/26 16:54:59 阅读更多 →

日新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻