鸿蒙开发-UI-组件-气泡/菜单

鸿蒙开发-UI-组件

鸿蒙开发-UI-组件2

鸿蒙开发-UI-组件3

文章目录

前言

一、气泡提示

1.文本提示气泡

2.带按钮的提示气泡

3.自定义气泡

二、菜单

1.创建默认样式的菜单

2.创建自定义样式的菜单

3.创建支持右键或长按的菜单

总结


前言

上文主要学习了鸿蒙开发UI组件(文本输入、自定义弹窗、视频播放)的使用,详细学习了文本输入组件的样式定义以及事件添加,简单学习了默认弹窗以及模式视频播放器组件的使用,详细学习了自定义弹窗的使用步骤以及自定义视频播放的开发步骤。本文将学习鸿蒙开发UI气泡提示与菜单。

一、气泡提示

Popup属性可绑定在组件上显示气泡弹窗提示,设置弹窗内容、交互逻辑和显示状态。主要用于屏幕录制、信息弹出提醒等显示状态。

气泡分为两种类型,

系统提供的气泡PopupOptionsPopupOptions,通过配置primaryButton、secondaryButton来设置带按钮的气泡。

开发者自定义的CustomPopupOptions,通过配置builder参数来设置自定义的气泡。

1.文本提示气泡

文本提示气泡常用于只展示带有文本的信息提示,不带有任何交互的场景。Popup属性需绑定组件,当bindPopup属性中参数show为true的时候会弹出气泡提示。


代码示例

@Entry
@Component
struct PopupExample {@State handlePopup: boolean = falsebuild() {
//step1:定义button组件Column() {Button('PopupOptions').onClick(() => {this.handlePopup = !this.handlePopup})
//step2:button组件绑定Popup属性,handlePopup用于气泡是否显示开关,message对象用于气泡显示信息.bindPopup(this.handlePopup, {message: 'This is a popup with PopupOptions',})}.width('100%').padding({ top: 5 })}
}

UI渲染

2.带按钮的提示气泡

primaryButton、secondaryButton属性为气泡最多设置两个Button按钮,通过此按钮进行简单的交互;开发者可以通过配置action参数来设置想要触发的操作

代码示例

@Entry
@Component
struct PopupExample22 {@State handlePopup: boolean = falsebuild() {Column() {
//step1:定义button按钮Button('PopupOptions').margin({top:200}).onClick(() => {this.handlePopup = !this.handlePopup})
//step2:button按钮绑定bindPopup属性.bindPopup(this.handlePopup, {message: 'This is a popup with PopupOptions',
//step3:气泡定义主button按钮,按钮显示值'Confirm',action定义按钮点击后的行为primaryButton:{value:'Confirm',action: () => {this.handlePopup = !this.handlePopupconsole.info('confirm Button click')}},
//step4:气泡定义次button按钮,按钮显示值'Concel',action定义按钮点击后的行为secondaryButton: {value: 'Cancel',action: () => {this.handlePopup = !this.handlePopup}},})}.width('100%').padding({ top: 5 })}
}

UI渲染

3.自定义气泡

开发者可以使用构建器CustomPopupOptions创建自定义气泡,@Builder中可以放自定义的内容。除此之外,还可以通过popupColor等参数控制气泡样式

代码示例

@Entry
@Component
struct Index {@State customPopup: boolean = false
//step1: 通过@Builder装饰器定义自定义弹框UI描述,一个Row容器中放置图片和文本@Builder popupBuilder() {Row({ space: 2 }) {Image($r("app.media.icon")).width(24).height(24).margin({ left: 5 })Text('This is Custom Popup').fontSize(15)}.width(200).height(50).padding(5)}build() {Column() {
//step2:定义气泡绑定的组件buttonButton('CustomPopupOptions').position({x:100,y:200}).onClick(() => {this.customPopup = !this.customPopup})
//step3:组件button绑定气泡,指定自定义的气泡UI描述、气泡弹出位置、气泡背景色.bindPopup(this.customPopup, {builder: this.popupBuilder,placement:Placement.Bottom,popupColor:Color.Pink})}.height('100%')}
}

UI渲染

二、菜单

Menu是菜单接口,一般用于鼠标右键弹窗、点击弹窗等

1.创建默认样式的菜单

菜单需要调用bindMenu接口来实现。bindMenu响应绑定组件的点击事件,绑定组件后手势点击对应组件后即可弹出

代码示例

//step1:定义绑定菜单的组件button
Button('click for Menu').bindMenu([
//step2:button绑定菜单的组件,菜单显示名称'Menu1',action定义点击菜单组件行为{value: 'Menu1',action: () => {console.info('handle Menu1 select')}}       
])

UI渲染

2.创建自定义样式的菜单

当默认样式不满足开发需求时,可使用@Builder自定义菜单内容。可通过bindMenu接口进行菜单的自定义

代码示例

@State select: boolean = true
private iconStr: ResourceStr = $r("app.media.view_list_filled")
private iconStr2: ResourceStr = $r("app.media.view_list_filled")
@Builder
SubMenu() {Menu() {MenuItem({ content: "复制", labelInfo: "Ctrl+C" })MenuItem({ content: "粘贴", labelInfo: "Ctrl+V" })}
}@Builder
MyMenu(){Menu() {MenuItem({ startIcon: $r("app.media.icon"), content: "菜单选项" })MenuItem({ startIcon: $r("app.media.icon"), content: "菜单选项" }).enabled(false)MenuItem({startIcon: this.iconStr,content: "菜单选项",endIcon: $r("app.media.arrow_right_filled"),// 当builder参数进行配置时,表示与menuItem项绑定了子菜单。鼠标hover在该菜单项时,会显示子菜单。builder: this.SubMenu.bind(this),})MenuItemGroup({ header: '小标题' }) {MenuItem({ content: "菜单选项" }).selectIcon(true).selected(this.select).onChange((selected) => {console.info("menuItem select" + selected);this.iconStr2 = $r("app.media.icon");})MenuItem({startIcon: $r("app.media.view_list_filled"),content: "菜单选项",endIcon: $r("app.media.arrow_right_filled"),builder: this.SubMenu.bind(this)})}MenuItem({startIcon: this.iconStr2,content: "菜单选项",endIcon: $r("app.media.arrow_right_filled")})}
}Button('click for Menu').bindMenu(this.MyMenu)

UI渲染

Menu组件、MenuItem、MenuItemGroup之间关系,MenuItem对象builder参数作用

3.创建支持右键或长按的菜单

通过bindContextMenu接口进行菜单的自定义及菜单弹出的触发方式:右键或长按。使用bindContextMenu弹出的菜单项是在独立子窗口内的,可显示在应用窗口外部。

1. @Builder开发菜单内的内容同创建自定义样式的菜单

2. 确认菜单的弹出方式,使用bindContextMenu属性绑定组件

代码示例为右键弹出菜单

Button('click for Menu').bindContextMenu(this.MyMenu, ResponseType.RightClick)

总结

本文详细学习鸿蒙开发UI相关的气泡提示以及菜单的基本使用,也学习了气泡提示和菜单的自定义使用方式,下文将学习鸿蒙开发UI页面路由

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/442088.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测任务的调研与概述

目标检测任务的调研与概述 0 FQA1 目标检测任务基本知识:1.1 什么是目标检测?1.2 目标检测的损失函数都有那些?1.2.1 类别损失:1.2.2 位置损失: 1.3 目标检测的评价指标都有那些?1.4 目标检测有那些常见的数…

微信小程序制作需要什么软件?

微信小程序自2017年推出以来,因其便捷性和巨大的用户基础,已成为企业和开发者争相布局的新领域。对于想要进入微信小程序这个市场的商家或企业来说,选择合适的制作软件是首要任务。那么微信小程序制作需要什么软件呢? 对于有开发…

【项目日记(六)】第二层: 中心缓存的具体实现(下)

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:项目日记-高并发内存池⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你做项目   🔝🔝 开发环境: Visual Studio 2022 项目日…

pycharm删除的文件怎么恢复找回

目录 1、点击被删除文件的所属上级目录右键; 2、弹出的右键菜单点击Local History,Show History 3、打开本地历史界面后,点击误删除文件; 4、在右侧区域,选中文件,点击右键; 5、在右键菜单…

【ArcGIS微课1000例】0099:土地利用变化分析

本实验讲述在ArcGIS软件中基于两期土地利用数据,做土地利用变化分析。 文章目录 一、实验描述二、实验过程三、注意事项一、实验描述 对城市土地利用情况进行分析时,需要考虑不同时期土地利用图层在空间上的差异性,如农用地转建筑用地的空间变化。而该变化过程表现为各时期…

【Android Studio 启动出错】

Android Studio版本:2022.3.1 出错前操作: 昨晚开着三四个项目,然后太晚了直接关机睡觉,第二天起来开机,启动Android Studio,就出现了这个问题: Internal error. Please refer to https://co…

【Tomcat与网络4】Tomcat的连接器设计

目录 1 如何设计一个灵活可靠的连接器 2 主要组件介绍 在上一篇,我们介绍了Tomcat提供服务的整体结构,本文我们一起来看一下Tomcat的连接器的设计。 在前面我们提到Tomcat主要完成两个功能: 处理 Socket 连接,负责网络字节流与…

开源博客项目Blog .NET Core源码学习(8:EasyCaching使用浅析)

开源博客项目Blog使用EasyCaching模块实现缓存功能,主要是在App.Framwork项目中引用了多类包,包括内存缓存(EasyCaching.InMemory)、Redis缓存(EasyCaching.CSRedis),同时支持多种序列化方式&am…

Python采集学习笔记-读取excel数据

表格格式 方法一:使用xlrd import xlrd 1.读取Excel文件 workbook xlrd.open_workbook(plc.xlsx) 2.读取第一个表 sheet workbook.sheet_by_index(0) 3.获取表格总行数 total_rows sheet.nrows 4.创建列表,存储表格一行中每一列信息 plc_info [] for row in range(1…

中国的茶文化:历史、传统与生活

中国的茶文化:历史、传统与生活 一、引言 茶,这一神奇而古老的饮品,与中国的历史、文化和生活方式紧密相连。中国的茶文化,源远流长,博大精深,是中华文明的重要组成部分。它不仅是一种饮料,更是…

Linux 入门基础知识(一)—— Linux的基本使用

Linux 入门基础知识 一、Linux的基本使用和配置1.1、终端1.2、消耗内存1.3、运行级别1.6、登录前欢迎语1.5、登录后欢迎语1.6、shell1.7、ps aux1.8、设置主机名1.9、whoami和who am i1.10、命令提示符 二、Linux执行命令的过程详解和命令类型2.1、命令执行2.2、hash缓存表2.3、…

自托管短链接服务Snapp

什么是 Snapp ? Snapp 是一款自托管 URL 缩短服务。能轻松缩短链接。借助 Snapp 的自托管功能,您能拥有完全的控制权,并根据您的要求创建简洁、可共享的链接。 使用 Snapp,您可以个性化链接结尾、监控链接的点击次数,设…