鸿蒙通用组件弹窗简介

news2024/11/25 4:20:59

鸿蒙通用组件弹窗简介

  • 弹窗----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.coloradmin.cn/o/1651462.html

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

相关文章

JavaSE——异常(1/2)-认识异常(介绍,异常的体系,了解如何解决异常)、自定义异常(自定义异常的种类,实例演示)

目录 认识异常 介绍 异常的体系 了解如何解决异常 自定义异常 自定义异常的种类 实例演示 认识异常 介绍 什么是异常? 异常就是代表程序出现的问题。 比如: int[] arr {10,20,30}; System.out.println(arr[3]);System.out.println(10 / 0); …

Vince9120雅思小作文笔记——P1 Intro(前言)

文章目录 链接P1 Intro(前言)字数限制题型综述(problem types overview)1. **柱状图(Bar Chart)** - 描述不同类别在某个或多个变量上的数据量比较。2. **线图(Line Graph)** - 展示…

项目经理【过程】概念

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

Pytorch学习笔记——神经网络基本框架

一、神经网络是什么 神经网络在人工智能和深度学习的领域,一般称为人工神经网络,即ANN(Artificial Neural Network),是一种模仿人脑神经系统工作方式的计算模型。被广泛应用于人工智能、自动控制、机器人、统计学等领域的信息处理中。 二、…

推荐一个gpt全能网站

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

Git === Git概述 Git安装

第1章 Git概述 Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。 Git易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion…

未授权访问:Redis未授权访问漏洞

目录 1、漏洞原理 2、环境搭建 3、未授权访问 4、利用redis未授权写入weshell 5、利用redis未授权反弹shell 6、利用redis未授权实现免密登录 防御手段 从这篇文章开始我就要开始学习各种未授权访问的知识和相关的实操实验了,一共有好多篇,内容主…

五分钟解决Springboot整合Mybaties

SpringBoot整合Mybaties 创建maven工程整合mybaties逆向代码生成 创建maven工程 1.通过idea创建maven工程如下图 2.生成的工程如下 以上我们就完成了一个maven工程,接下来我们改造成springboot项目。 这里主要分为三步:添加依赖,增加配置&…

二叉搜索树相关

二叉搜索树 定义:对二叉搜索树的一些操作基本结构Insert操作Find操作Erase操作 InOrder遍历二叉树操作模拟字典模拟统计次数 定义: 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:若它的左子树不为空&a…

《Decoupled Contrastive Learning for Long-Tailed Recognition》阅读笔记

论文标题 《Decoupled Contrastive Learning for Long-Tailed Recognition》 针对长尾识别的解耦对比学习 作者 Shiyu Xuan 和 Shiliang Zhang 来自北京大学计算机学院多媒体信息处理国家重点实验室 初读 摘要 监督对比损失(Supervised Contrastive Loss, SC…

LeetCode //C - 85. Maximal Rectangle

85. Maximal Rectangle Given a rows x cols binary matrix filled with 0’s and 1’s, find the largest rectangle containing only 1’s and return its area. Example 1: Input: matrix [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“…

Netty HTTP 示例-响应式编程-013

🤗 ApiHug {Postman|Swagger|Api...} = 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Next Generation API Development Platform…

The provided password or token is incorrect or your account

IDEA使用git技巧 【/n】 01 问题出现场景 我的gitlab上个月生成的token到期了,于是今天推上去的时候报了这个错误 The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See ht…

【知识碎片】2024_05_07

今天记录了两个代码和C的几个破碎知识。 第一段代码是基础型的,关于数组。第二段代码是二分的,一开始没通过全部案例,值得再看。 每日代码 1.记负均正 输入一个数组,输出负数的个数,整数的平均值(0都不参…

AI伦理和安全风险管理终极指南

人工智能(AI)正在迅速改变各个领域的软件开发和部署。驱动这一转变的两个关键群体为人工智能开发者和人工智能集成商。开发人员处于创建基础人工智能技术的最前沿,包括生成式人工智能(GenAI)模型、自然语言处理&#x…

深入探索van Emde Boas树:原理、操作与C语言实现

van Emde Boas (vEB) 树是一种高效的数据结构,用于处理整数集合。它是由荷兰计算机科学家Jan van Emde Boas在1977年提出的。vEB树在处理整数集合的查找、插入、删除和迭代操作时,能够以接近最优的时间复杂度运行。vEB树特别适合于那些元素数量在某个较小…

Jenkins +配置邮件 centos8.5 安装部署 运维系列一

1 jenkins的war包下载地址: Download and deploy 2 xftp 等方式上传到服务器 #安装jdk tar zxvf jdk-11.0.8_linux-x64_bin.tar.gz mv jdk-11.0.8/ /usr/local/jdk vim /etc/profile export JAVA_HOME/usr/local/jdk export PATH$JAVA_HOME/bin:$PATH CLASSPATH.:$JAVA_…

WPF基础学习笔记

目录 基础知识: WPF的特点: WPF的优点 什么是XAML? 布局基础: 样式的应用: 控件模板(ControlTemplate): 数据模板(DataTemplate): 静态资源StaticRe…

智慧工地,筑牢安全防线:严防塔吊相撞,守护施工安全之巅!

塔吊相撞的事故是一个严重的施工安全问题,而智慧工地则是一种利用现代科技手段提高施工安全性的解决方案。 为了避免类似事故的发生,智慧工地可以采取以下措施: 一、建立全面的监控系统 智慧工地可以建立完善的监控系统,通过安装…

Github 2024-05-08 C开源项目日报 Top8

根据Github Trendings的统计,今日(2024-05-08统计)共有8个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目8PHP项目1Python项目1C++项目1PHP:流行的Web开发脚本语言 创建周期:4710 天开发语言:C, PHP协议类型:OtherStar数量:37340 个Fork数量…