【Harmony3.1/4.0】笔记六-对话框

概念

对话框在任何一款应用中,任何一个系统或者平台上使用都非常频繁,这里介绍一下鸿蒙系统中对话框的用法,分别为:普通文本对话框,自定义提示对话框,对话框菜单,警告提示对话框,列表选择对话框,自定义对话框,日期对话框,时间对话框,文本列表对话框……

1.普通文本对话框

@Entry
@Component
struct Index {@State message: string = 'Hello World'//文本提示对话框build() {Scroll(){Column() {Button("普通文本提示对话框").width("60%").height(60).margin(10).onClick(()=>{promptAction.showToast({message:this.message,//显示的提示内容duration:2000,//显示的时长bottom:200,//设置提示对话框距离底部的间距})})}.width("100%")}}
}

2.自定义提示对话框

//该提示对话框默认为中央显示Button("自定义提示对话框").width("60%").height(60).margin(10).onClick(()=>{promptAction.showDialog({title:"带按钮的提示对话框",message:"你好,我是自定义提示对话框",//对话框中显示两个按钮时横向显示,三个按钮会垂直显示buttons:[{text:"按钮一",color:"#f00",},{text:"按钮二",color:"#0f0",},{text:"按钮三",color:"#00f",}]})//给按钮添加点击事件.then(data=>{switch (data.index){case 0:console.info("第一个按钮被点击了")break;case 1:console.info("第二个按钮被点击了")break;case 2:console.info("第三个按钮被点击了")break;}})})

3.对话框菜单

Button("对话框菜单").width("60%").height(60).margin(10).onClick(()=>{//菜单对话框,最多可添加6个按钮promptAction.showActionMenu({title:"对话框菜单",buttons:[{text:"按钮一",color:"#0ff",},{text:"按钮二",color:"#f0f",},{text:"按钮三",color:"#f30",},{text:"按钮四",color:"#aaf",},{text:"按钮五",color:"#777",},{text:"按钮六",color:"#0f7",},]}).then(data=>{console.info("第"+(data.index+1)+"个按钮被点击了")})})

4.警告提示对话框

Button("警告提示对话框").width("60%").height(60).margin(10).onClick(()=>{AlertDialog.show({title:"标题",//设置标题message:"内容",//设置内容autoCancel:true,//是否允许自动取消alignment:DialogAlignment.Bottom,//设置对话框显示的位置offset:{dx:0,dy:-20},//在对齐方式的条件下,设置水平和垂直方向的偏移量//x轴向右为正,y轴向下为正gridCount:3,//通过设置占用的栅格数设置对话框的宽度confirm:{//添加确定按钮value:"确定",action:()=>{console.info("确定按钮被点击了")},backgroundColor:"#0ff",//添加按钮的背景颜色fontColor:"#f0f",//字体颜色},cancel:()=>{//当对话框被取消的时候触发console.info("对话框被取消了")}})})

 //警告提示对话框2Button("警告提示对话框2").width("60%").height(60).margin(10).onClick(()=>{AlertDialog.show({title:"标题",//设置标题message:"内容",//设置内容autoCancel:true,//是否允许自动取消alignment:DialogAlignment.Bottom,//设置对话框显示的位置offset:{dx:0,dy:-20},//在对齐方式的条件下,设置水平和垂直方向的偏移量//x轴向右为正,y轴向下为正gridCount:3,//通过设置占用的栅格数设置对话框的宽度primaryButton:{value:"取消",action:()=>{console.info("取消按钮被点击了")},},secondaryButton:{value:"确定",action:()=>{console.info("确定按钮被点击了")}},cancel:()=>{//当对话框被取消的时候触发console.info("对话框被取消了")}})})

5.列表选择对话框

//列表选择对话框Button("列表选择对话框").width("60%").height(60).margin(10).onClick(()=>{ActionSheet.show({title:"标题",message:"内容",autoCancel:true,alignment:DialogAlignment.Bottom,offset:{dx:0,dy:-20},sheets:[{title:"苹果",icon:$r("app.media.icon"),action:()=>{console.info("苹果选项被点击了")}},{title:"香蕉",icon:$r("app.media.icon"),action:()=>{console.info("香蕉选项被点击了")}},{title:"西瓜",icon:$r("app.media.icon"),action:()=>{console.info("西瓜选项被点击了")}},],confirm:{value:"确定",action:()=>{console.info("确定按钮被点击了")}},cancel:()=>{console.info("对话框被取消了")}})})

6.自定义对话框

import promptAction from '@ohos.promptAction'//自定义对话框
@CustomDialog
struct Dialog1{//自定义对话框控制器controller:CustomDialogControllercancel:()=>void //定义对话框被取消的事件confirm:()=>void //定义对话框被确定的事件build(){Column(){Text("标题").width("100%").height(60).backgroundColor("#600f").fontColor(Color.White).fontWeight(FontWeight.Bold).fontSize(26).textAlign(TextAlign.Center).letterSpacing(10)Text("我是自定义对话框的内容").width("100%").height(60).margin({left:10}).fontSize(24).fontColor(Color.Black)Row({space:10}){Button("取消").width("40%").backgroundColor(Color.Red).fontColor(Color.White).height(40).type(ButtonType.Normal).borderRadius(10).onClick(()=>{this.controller.close()this.cancel()})Button("确定").width("40%").backgroundColor("#00f").fontColor(Color.White).height(40).type(ButtonType.Normal).borderRadius(10).onClick(()=>{this.controller.close()this.confirm()})}}.width("100%").margin({bottom:10})}
}@Entry
@Component
struct Index {//初始化自定义对话框的控制器dialogController:CustomDialogController=new CustomDialogController({//创建自定义对话框对象builder:Dialog1({//实现两个未实现的方法cancel:this.onCancel,confirm:this.onAccept,}),autoCancel:true,alignment:DialogAlignment.Bottom,})//定义两个方法onCancel(){console.info("自定义对话框被取消了")}onAccept(){console.info("自定义对话框被确定了")}//文本提示对话框build() {Scroll(){Column() {Button("自定义对话框").width("60%").height(60).margin(10).onClick(()=>{//通过控制器打开自定义对话框   关闭调用close方法this.dialogController.open()})}.width('100%')}}
}

7.日期对话框

//日期对话框Button("日期对话框").width("60%").height(60).margin(10).onClick(()=>{//创建日期对话框DatePickerDialog.show({start:new Date("2000-1-1"), //设置开始的日期end:new Date("2100-1-1"),//设置结束的日期selected:this.currentDate,//设置当前选中的日期为现在的日期// lunar:true,//允许月份和天数显示为中文onAccept:(value:DatePickerResult)=>{//保存当前这一次用户选中的日期,用户下一次打开对话框时,显示上一次选中的日期this.currentDate.setFullYear(value.year,value.month,value.day)console.info(JSON.stringify(value))},onCancel:()=>{console.info("日期对话框被取消了")},onChange:(value:DatePickerResult)=>{console.info("用户正在更改日期"+JSON.stringify(value))}})})

8.时间对话框

//时间对话框Button("时间对话框").width("60%").height(60).margin(10).onClick(()=>{TimePickerDialog.show({//设置当前的时间selected:this.currentDate,useMilitaryTime:true,//是否使用24小时制//选中事件onAccept:(value:TimePickerResult)=>{this.currentDate.setHours(value.hour,value.minute)console.info(JSON.stringify(value))},//取消事件onCancel:()=>{console.info("时间对话框被取消了")},//改变事件onChange:(value:TimePickerResult)=>{console.info(JSON.stringify(value))},})})

9.文本列表对话框

//文本列表对话框Button("文本列表对话框").width("60%").height(60).margin(10).onClick(()=>{TextPickerDialog.show({range:this.texts,//添加数据信息selected:2,//默认选中第几项,默认第0项开始onAccept:(value:TextPickerResult)=>{promptAction.showToast({message:"下标为:"+value.index+"的"+value.value+"被选中了"})},onCancel:()=>{promptAction.showToast({message:"对话框取消了"})},onChange:(value:TextPickerResult)=>{console.info(JSON.stringify(value))}})})

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

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

相关文章

Unity 实现原神中的元素反应

一、元素反应 原神中共有七种元素,分别是水、火、冰、岩、风、雷、草。这七种元素能互相作用 Demo下载:Download 元素反应表格图示,可能不够精准 /火水雷冰草岩风绽放原激化火/蒸发超载融化燃烧结晶扩散烈绽放/水蒸发/感电冻结/碎冰绽放结晶…

Windows主机入侵检测与防御内核技术深入解析

第2章 模块防御的设计思想 2.1 执行与模块执行 本章内容为介绍模块执行防御。在此我将先介绍“执行”分类,以及“模块执行”在“执行”中的位置和重要性。 2.1.1 初次执行 恶意代码(或者行为)要在被攻击的机器上执行起来,看起…

Ubuntu 自己写的程序如何创建快捷方式

在Ubuntu中创建程序的快捷方式通常是通过将一个指向程序可执行文件的.desktop文件放入/usr/share/applications/或用户的~/.local/share/applications/目录来实现的。以下是创建快捷方式的基本步骤和示例: 在application里创建快捷方式 创建一个新的.desktop文件。…

【Linux】详解信号产生的方式

一、kill命令 在命令行中通过kill -数字 pid指令可以给指定进程发送指定信号。这里说明一下几个常见的信号: SIGINT(2号信号):中断信号,通常由用户按下CtrlC产生,用于通知进程终止。SIGQUIT(3号…

PG修改端口号与error: could not connect to server: could not connect to server 问题解决

刚开始学习PG修改端口号之后数据库端口号没变。 修改端口号:/usr/local/pgsql/data中的postgresql.conf中 修改后并不能直接生效需要重启PG: /usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l /usr/local/pgsql/data/logfile restart重启后新…

c++在visual studio上的默认配置

右键 新建项 右键源文件 属性

企业OA管理|基于SprinBoot+vue的企业OA管理系统(源码+数据库+文档)

企业OA管理目录 基于SprinBootvue的企业OA管理系统 一、前言 二、系统设计 三、系统功能设计 1 管理员模块的实现 1.1 用户信息管理 1.2 公告信息管理 1.3 客户关系管理 1.4 通讯录管理 2 用户模块的实现 2.1 客户关系添加 2.2 通讯录添加 2.3 日程安排添加 四、…

3.Docker常用镜像命令和容器命令详解

文章目录 1、Docker镜像命令1.1 获取镜像1.2 查看镜像1.2.1、images命令列出镜像1.2.2、tag命令添加镜像标签1.2.3、inspect命令查看详细信息1.2.4、history命令查看镜像历史 1.3 搜索镜像1.4 删除和清理镜像1.4.1、使用标签删除镜像1.4.2、清理镜像 1.5 创建镜像1.5.1、基于已…

Nginx 从入门到实践(1)

Nginx 从入门到实践 Nginx Nginx 从入门到实践Nginx介绍Nginx常用功能1、Http代理,反向代理2、负载均衡3、动静分离4、Nginx配置文件结构 简述Nginx和Apache的差异编译安装nginx服务在线安装nginxnginx 状态统计nginx 访问控制(用户校验、客户端授权)用户校验基于客…

【vue,unapi】UniApp引入全局js实现全局方法,全局变量

创建一个全局文件utils.js export const baseUrl "https://www.baidu.com/"export const fn () > {console.log("demo"); } export const obj {baseUrl : "https://www.baidu.com/",demo(){console.log("demo2");} }第一种&#…

4月25日 C++day4

#include <iostream> using namespace std;class Person {const string name;int age;char sex; public:Person():name("lisi"){cout << "Person无参构造" << endl;}Person(string name,int age,char sex):name(name),age(age),sex(sex)…

最新windows版本erlang26.0和rabbitmq3.13下载

Erlang下载 官网下载&#xff1a;https://www.erlang.org/patches/otp-26.0 百度网盘&#xff1a;https://pan.baidu.com/s/1xU4syn14Bh7QR-skjm_hOg 提取码&#xff1a;az1t RabbtitMQ下载 官网下载&#xff1a;https://www.rabbitmq.com/docs/install-windows 百度网盘…

Python二进制文件转换为文本文件

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在日常编程中&#xff0c;我们经常会遇到需要将二进制文件转换为文本文件的情况。这可能是因…

Python请求示例电商商品详情数据(API接口开发系列),从入门到实战

在电商系统中&#xff0c;商品详情数据通常通过API接口提供。以下是一个从入门到实战的Python请求示例&#xff0c;展示如何获取电商商品详情数据。 入门篇&#xff1a;理解API接口 首先&#xff0c;你需要了解API&#xff08;应用程序接口&#xff09;的基本概念。API允许不…

Spring Boost + Elasticsearch 实现检索查询

需求&#xff1a;对“昵称”进行“全文检索查询”&#xff0c;对“账号”进行“精确查询”。 认识 Elasticsearch 1. ES 的倒排索引 正向索引 对 id 进行检索速度很快。对其他字段即使加了索引&#xff0c;只能满足精确查询。模糊查询时&#xff0c;逐条数据扫描&#xff0c…

VMware17Pro虚拟机安装macOS教程(超详细)

目录 1. 前言2. 下载所需文件3. 安装VMware3.1 安装3.2 启动并查看版本信息3.3 虚拟机默认位置配置 4. 安装补丁4.1 解压补丁4.2 结束VMware相关进程4.3 运行补丁包 5. 安装macOS5.1 新建虚拟机5.2 修改虚拟机配置5.3 安装操作系统5.3.1 选择 ISO 映像文件5.3.2 开启虚拟机5.2.…

重仓比特币

作者&#xff1a;Arthur Hayes Co-Founder of 100x. 编译&#xff1a;liam ccvalue (下文中表达的任何观点均为作者的个人观点&#xff0c;不应作为投资决策的依据&#xff0c;也不应被视为参与投资交易的建议或意见&#xff09;。 我们中断牛市常规节目&#xff0c;为您播报这…

SpringCloud 之 服务提供者

前提 便于理解,我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.com学习Rest实例之提供者 提供者模块展示 1、导入依赖 <!-- 实体类 Web--><dependency><groupId>com.jyl</groupId><…

C语言中浮点型存储方式

前言 这次是上次博客的续写哦&#xff0c;如果有小伙伴不了解&#xff0c;可以点击链接跳转 C语言中整数与浮点数在内存中的存储 我们在上次的博客中给大家留了一段代码&#xff0c;不知道大家现在有没有想明白呢&#xff0c;让我来为大家揭秘吧&#xff01;&#xff01; int m…

RakSmart美国VPS评测分析你了解多少

在当前的云计算市场中&#xff0c;RakSmart美国VPS以其出色的性能与稳定性&#xff0c;受到了广大用户的青睐。本文将对RakSmart美国VPS进行新的评测分析&#xff0c;帮助大家更好地了解这款产品。 首先&#xff0c;从性能角度来看&#xff0c;RakSmart美国VPS无疑是一款高性能…