鸿蒙通用组件弹窗简介

鸿蒙通用组件弹窗简介

  • 弹窗----Toast
    • 引入@ohos.promptAction模块
    • 通过点击按钮,模拟弹窗
  • 警告对话框----AlertDialog
  • 列表弹窗----ActionSheet
  • 选择器弹窗
  • 自定义弹窗
    • 使用@CustomDialog声明一个自定义弹窗
    • 在需要使用的地方声明
    • 自定义弹窗,完整代码

弹窗----Toast

在这里插入图片描述

引入@ohos.promptAction模块

import promptAction from '@ohos.promptAction'

通过点击按钮,模拟弹窗

Button('点击')
  .width('60%')
  .height(50)
  .onClick(()=>{
    promptAction.showToast({
      message:'点击了按钮', // 展示的文字
      duration:2000, // 停留时长
      bottom: 100 // 距离底部多远
    })
  })

警告对话框----AlertDialog

AlertDialog用于向用户提出告警或者确认的对话框。

在这里插入图片描述

AlertDialog.show({
  title:'提示信息',
  message:'此信息比较重要,请确认!!!',
  autoCancel: true, //点击遮障层时,是否关闭弹窗
  alignment: DialogAlignment.Bottom, //弹窗位置
  offset: { dx: 0, dy: -30 }, //相对于弹窗位置的偏移量
  primaryButton: { //主要按钮
    value: '确认', //按钮内容
    fontColor: Color.Red, //字体颜色
    action: () => { //点击回调
      console.log('点击了确认按钮')
    }
  },
  secondaryButton: { //次要按钮
    value: '取消',
    action: () => {
      console.log('点击了取消按钮')
    }
  },
  cancel: () => { //点击遮罩层取消时的回调
    console.info('点击遮罩层取消时的回调')
  }
})

列表弹窗----ActionSheet

ActionSheet用于给用户一组列表弹窗,等用户选择后再作处理。

在这里插入图片描述

ActionSheet.show({
title:'提示信息',
message: '此信息比较重要,请确认!!!',
autoCancel: true, //点击遮障层时,是否关闭弹窗
alignment: DialogAlignment.Center, //弹窗位置
offset: { dx: 0, dy: -20 }, //弹窗相对alignment位置的偏移量
confirm: { //底部按钮
    value: '取消', //按钮文本内容
    action: () => { //按钮回调函数
    console.log('点击按钮取消')
    }
},
cancel: () => { //点击遮障层关闭弹窗时的回调
    console.log('点击遮障层取消')
},
sheets:[
    {
    title:'操作1',
    action: () => {
        console.log('操作1')
    }
    },
    {
    title:'操作2',
    action: () => {
        console.log('操作2')
    }
    },
    {
    title:'操作3',
    action: () => {
        console.log('操作3')
    }
    },
]
})

alignment的几种位置:

DialogAlignment.Top 上部
DialogAlignment.Center 中间
DialogAlignment.Bottom 底部
DialogAlignment.TopStart 左上部
DialogAlignment.TopEnd 右上部
DialogAlignment.CenterStart 中间左边
DialogAlignment.CenterEnd 中间右边
DialogAlignment.BottomStart 左下部
DialogAlignment.BottomEnd 右下部

选择器弹窗

鸿蒙API中有很多选择器弹窗,比如时间、日期、文本等,这里就不做介绍。

自定义弹窗

在实际使用过程中,一定会遇到官方提供的弹窗不能满足需要的情况,这时候就需要尽心自定义。

这里举一个自定义弹窗的简单例子

使用@CustomDialog声明一个自定义弹窗

@CustomDialog
struct CustomDialogText{
  controller: CustomDialogController = new CustomDialogController({ builder: CustomDialogText() })

  build(){
    Column({space: 20}){
      Text('内容1')
      Text('内容2')
      Text('内容3')
    }
      .margin(20)
    .onClick(()=>{
      this.controller.close()
    })
  }
}

在build里面定义UI样式,这里只做为展示,随便定义了几个展示的文本内容

在需要使用的地方声明

在使用过程中,需要需要初始化CustomDialogController。

controller: CustomDialogController = new CustomDialogController({
  builder: CustomDialogText(),// builder就是自定义的弹窗
  alignment: DialogAlignment.Center, // 弹窗弹出位置
  offset:{dx: 0, dy: -10} // 弹窗弹出后的偏移量,按需要进行设置
})

定义好controller之后,在使用的时候,直接调用this.controller.open()。

在这里插入图片描述

自定义弹窗,完整代码

@Entry
@Component
struct CommentTest{
  controller: CustomDialogController = new CustomDialogController({
    builder: CustomDialogText(),
    alignment: DialogAlignment.Center,
    offset:{dx: 0, dy: -10}
  })
  build(){
    Column({space: 20}){
      Button('点击弹出自定义弹窗')
        .width('60%')
        .height(50)
        .onClick(()=>{
          this.controller.open()
        })

    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}

@CustomDialog
struct CustomDialogText{
  controller: CustomDialogController = new CustomDialogController({ builder: CustomDialogText() })

  build(){
    Column({space: 20}){
      Text('内容1')
      Text('内容2')
      Text('内容3')
    }
      .margin(20)
    .onClick(()=>{
      this.controller.close()
    })
  }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Seata之TCC 模式的使用

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能…

【python数据分析基础】—pandas透视表和交叉表

目录 前言一、pivot_table 透视表二、crosstab 交叉表三、实际应用 前言 透视表是excel和其他数据分析软件中一种常见的数据汇总工具。它是根据一个或多个键对数据进行聚合,并根据行和列上的分组键将数据分配到各个矩形区域中。 一、pivot_table 透视表 pivot_tabl…

风与水如何联合优化?基于混合遗传算法的风-水联合优化运行程序代码!

前言 为提高风电场的供电质量同时增加其发电效益,利用储能技术为风电场配置一个蓄能系统是比较重要的解决措施之一。风电的蓄能技术有水力蓄能、压缩空气蓄能、超导磁力蓄能、流体电池组、电解水制氢等,其中水力蓄能是技术较成熟的一种蓄能方式,且小型的…

给网站网页PHP页面设置密码访问代码

将MkEncrypt.php文件上传至你网站根目录下或者同级目录下。 MkEncrypt.php里面添加代码,再将调用代码添加到你需要加密的页进行调用 MkEncrypt(‘123456’);括号里面123456修改成你需要设置的密码。 密码正确才能进去页面,进入后会存下cookies值&…

项目经理【过程】概念

系列文章目录 【引论一】项目管理的意义 【引论二】项目管理的逻辑 【环境】概述 【环境】原则 【环境】任务 【环境】绩效 【人】概述 【人】原则 【人】任务 【人】绩效 【过程】概念 一、过程是什么 1.1 项目管理五大过程组 1.2 五大过程组之间的相互作用 1.3 项目阶段VS过…

《Linux运维总结:ARM架构CPU基于docker-compose一离线部署consul v1.18.1集群工具》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《Linux运维篇:Linux系统运维指南》 一、部署背景 由于业务系统的特殊性,我们需要面向不通的客户安装我们的业务系统&…

【SpringBoot】-- 监听容器事件、Bean的前后置事件

目录 一、ApplicationContextInitializer 使用 1、自定义类,实现ApplicationContextInitializer接口 2、在META-INF/spring.factories配置文件中配置自定义类 二、ApplicationListener 使用 1、自定义类,实现ApplicationListener接口 2、在META-…

tensorboard子目录运行

tensorboard默认在根目录运行,浏览器访问127.0.0.1:6006打开界面。 如果想在子目录运行,那么可以这么执行 tensorboard --logdir ./logs --path_prefix/app/asd 然后浏览器既可以通过 http://localhost:6006/app/asd/来访问。​​​​​​ 但这么做遇…

HADOOP之YARN详解

目录 一、YARN的简介 1.1 MapReduce 1.x 1.1.1 MapReduce 1.x的角色 1.2 YARN的介绍 1.3 YARN的设计思想 二 YARN的配置 1. mapred-site.xml 2. yarn-site.xml ​编辑 3. hadoop-env.sh 4. 分发到其他节点 5.YARN的服务启停 6. 任务测试 三 YARN的历史日志 1. 历…

JetBrains的多数据库管理和SQL工具DataGrip 2024.1版本在Windows/Linux系统的下载与安装配置

目录 前言一、DataGrip在Windows安装二、DataGrip在Linux安装三、Windows下使用配置四、Linux下使用配置总结 前言 ​ “ DataGrip是一款多数据库管理和SQL工具,适用于不同类型的数据库。它提供了丰富的功能和工具,可以帮助开发人员更高效地管理数据库、…

【Linux网络编程】4.TCP协议、select多路IO转换

目录 TCP协议 TCP通讯时序 三次握手 四次挥手 滑动窗口 测试代码1 测试结果 Address already in use解决方法 批量杀进程 测试代码2 测试结果 测试代码4 测试结果 TCP状态转换 主动发起连接请求端 主动关闭连接请求端 被动接收连接请求端 被动关闭连接请求端…

浅谈自己用过最好用的AI工具概括

个人最经常用的AI工具的其实是Copilot,但是也有别的一些最好用的AI工具,包括: OpenAI GPT-3:这是一个自然语言生成模型,具有强大的语言理解和生成能力。它可以用于各种任务,如文字生成、自动回复和文本摘要…

1984. 学生分数的最小差值C++

给你一个 下标从 0 开始 的整数数组 nums ,其中 nums[i] 表示第 i 名学生的分数。另给你一个整数 k 。 从数组中选出任意 k 名学生的分数,使这 k 个分数间 最高分 和 最低分 的 差值 达到 最小化 。 返回可能的 最小差值 。 示例 1: 输入&…

台灯的十大品牌有哪些?十大护眼灯品牌推荐

相信细心的家长已经发现,自家孩子随着步入更高的年级,每天晚上学习的时间也越来越晚了,而这个过程中必然少不了一盏好的台灯! 市场上有不少网红代言的护眼灯,虽然它们销售量高,但其实缺乏专业技术和安全保障…

大数据Scala教程从入门到精通第三篇:Scala和Java的关系

一:Scala和Java的关系 1:详解 一般来说,学 Scala的人,都会 Java,而 Scala 是基于 Java 的,因此我们需要将 Scala和 Java 以及 JVM 之间的关系搞清楚,否则学习 Scala 你会蒙圈 Scala可以使用SDK…

【算法】基础算法004之前缀和

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 前言 本篇文章为大家带来前缀和…

推荐一个gpt全能网站

进入后,里面是这样的 点开后,里面是这样的 你以为只有这些吗? 往下翻一翻,你会发现新大陆!! 在输入框的下面,有一个分类栏,鼠标移上去,下面就会给出一堆网站 光是gp…

(超简单)SpringBoot中简单用工厂模式来实现

简单讲述业务需求 业务需要根据不同的类型返回不同的用户列表,比如按角色查询用户列表、按机构查询用户列表,用户信息需要从数据库中查询,因为不同的类型查询的逻辑不相同,因此简单用工厂模式来设计一下; 首先新建一个…

为什么 ChatGPT 不火了?

不火了是有原因的,下面我来从大部分人拿到 ChatGPT 之后的两大痛点开始讲起: 很多朋友拿到 ChatGPT 后的第一个痛点就是:用的不好 你经常会感觉到 ChatGPT 回答的好空,没有太多参考价值。 而第二个痛点则是:无处去用…

数据结构复习/学习9--堆/堆实现/升降序建堆/top-k问题

一、堆与完全二叉树 1.堆的逻辑与物理结构 2.父节点与子节点的下标 3.大小根堆 二、堆的实现(大根堆为例) 注意事项总结: 注意堆中插入与删除数据的位置和方法与维持大根堆有序时的数据上下调整 三、堆排序 1.排升序建大堆效率高 注意事项…
最新文章