HarmonyOS 自定义 loading 效果

大致思路

主要利用 Progress 组件

利用aboutToAppear周期函数:在创建自定义组件的新实例后,在执行其build()函数之前执行

利用aboutToDisappear函数在自定义组件析构销毁之前执行,这里主要用来清除定时器

实现效果

组件封装

components/HmLoading.ets

@Preview // 表示该组件可预览 Preview只能看效果 没有交互
@Componentexport struct HmLoading {@State // 响应式驱动视图value: number = 0timer: number = -1  // 显示声明// 在创建自定义组件的新实例后,在执行其build()函数之前执行aboutToAppear(): void {this.timer = setInterval(() => {if(this.value === 100) {this.value = 0}this.value++}, 10)}// aboutToDisappear(): void {clearInterval(this.timer)}build() {Progress({total: 100,value: this.value,type: ProgressType.Ring})}
}// 默认导出
export default HmLoading  // 一个文件只能有一个默认导出
// 按需导出
// export { HmLoading, HmLoading1, HmLoading3 }

pages/Index.ets

import HmLoading from './components/HmLoading';@Entry
@Component
struct Index {@State showLoading: boolean = false;// 页面刚进入 应该去获取数据  等待的过程中 显示进度 数据获取完 进度消失// 钩子函数aboutToAppear(): void {// 请求数据// setTimeout/setIntervalthis.showLoading = truesetTimeout(() => {this.showLoading = false},10000)}build() {Row() {Column() {if(this.showLoading) {HmLoading()}}.width('100%')}.height('100%').width('100%').padding(20)}
}

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

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

相关文章

【pytorch】pytorch入门4:神经网络的卷积层

文章目录 前言一、定义概念 缩写二、性质三、代码总结参考文献 前言 使用 B站小土堆课程的笔记 一、定义概念 缩写 卷积层是神经网络中用于突出特征来进行分类任务的层。 二、性质 卷积核例子:vgg16 model 三、代码 添加库 python代码块import os import …

大屏可视化px转rem方案实现

该方案有点不会字体模糊,现实一比一扩张收缩。 参考:vue项目实现PC端各分辨率适配 - 李云蹊 - 博客园 (cnblogs.com) 注意该文章Vue项目使用webpack。 如果 如果 如果 你用的是Vuevite Vite Vite Vite需要修改 postcss.config.js 文件 import autopr…

linux:chown用法详解

文章目录 1. 描述2. 语法3. 参数4. 例子 1. 描述 chown 是 Linux 中用于更改文件或目录的所有者和所有者组的命令。 2. 语法 chown [选项] 所有者[:组] 文件名详细用法: Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...or: chown [OPTION]... --reference…

机器人顶刊IEEE T-RO发布无人机动态环境高效表征成果:基于粒子的动态环境连续占有地图

摘要:本研究有效提高了动态环境中障碍物建模的精度和效率。NOKOV度量动作捕捉系统助力评估动态占用地图在速度估计方面的性能。 近日,上海交通大学、荷兰代尔夫特理工研究团队在机器人顶刊IEEE T-RO上发表题为Continuous Occupancy Mapping in Dynamic …

vue是如何优化

Vue的性能优化是一个涉及多个方面的综合过程,旨在提高Vue应用的运行效率和用户体验。以下是一些关键的Vue优化策略: 1. 代码层面的优化 a. 使用函数式组件 函数式组件相比普通组件没有状态(没有响应式数据)和实例(没…

『功能项目』鼠标悬停物品显示信息【77】

本章项目成果展示 我们打开上一篇763D模型动态UI显示的项目, 本章要做的事情是鼠标悬停在道具身上显示对应信息 首先制作一个武器Image信息面板 重命名为WeaponUI01 设为隐藏 修改脚本:RightClickItem.cs 查看挂载脚本: 运行项目 - 当鼠标悬…

多线程计算π

1、实现单线程计算π 2、使用任务分解方法,使用2线程,并行计算π 3、使用数据分解方法,使用2线程,并行计算π 注意:在循环中使用以上计算π的公式,n取值为1到Int.Max 问题1: import java.lang.*;public class Thread1 extends Thread{@Overridepublic void run(){l…

个性化大语言模型:PPlug——让AI更懂你

在当今数字化转型的时代,大型语言模型(LLMs)已经成为了不可或缺的工具,它们在自然语言理解、生成和推理方面展现了非凡的能力。然而,这些模型普遍采用的是“一刀切”的方式,即对于相同的输入给予所有用户相…

HDFS分布式文件系统01-HDFS架构与SHELL操作

HDFS分布式文件系统 学习目标第一课时知识点1-文件系统的分类单机文件系统网络文件系统分布式文件系统 知识点2-HDFS架构知识点3-HDFS的特点知识点4-HDFS的文件读写流程知识点5-HDFS的健壮性 第二课时知识点1-HDFS的Shell介绍HDFS Shell的语法格式如下。HDFS Shell客户端命令中…

db2 存储过程 if的例子及call调用方法

if 需要 end if; CREATE PROCEDURE UPDATE_SAL (IN empNum CHAR(6), OUT rating SMALLINT)LANGUAGE SQLBEGINIF rating 1 THENUPDATE employee SET salary salary * 1.10, bonus 1000 WHERE empno empNum;ELSEIF rating 2 THENUPDATE employee SET salary salary * …

windows电脑C盘内存爆满怎么办?

目录 1. 下载SpaceSniffer2. 运行程序,扫描C盘3. 寻找可删除的文件 为了节省C盘的内存,将大部分的软件尽量都安装在C盘以外的磁盘中,但是在电脑的使用过程中还是会发现C盘越来越少,这是因为很多软件会默认将数据文件夹&#xff08…

【算法】DFS 系列之 穷举/暴搜/深搜/回溯/剪枝(上篇)

【ps】本篇有 9 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1)全排列 .1- 题目解析 .2- 代码编写 2)子集 .1- 题目解析 .2- 代码编写 3)找出所有子集的异或总和再求和 .1- 题目解析 .2- 代码编写 4)全排列 II…

Spring Boot 实战:使用观察者模式实现实时库存管理

在现代软件开发中,实时数据处理和响应式编程变得越来越重要。库存管理系统是一个典型的需要实时更新的应用场景,当库存发生变化时,系统应该能够立即通知所有相关的组件或服务。在这个实战教程中,我们将展示如何使用Spring Boot结合…

​​三SSH

ssh密钥对登录原理 :首先,客户端事先生成一对密钥,并将公钥保存在服务器上的授权文件中。接下来,客户端不用密码,而是用密钥对来验证身份。客户端用服务器的公钥来加密自己的公钥,然后把加密后的信息发送给…

前端面试题(八)

39. 现代前端框架 当前流行的前端框架有哪些? React:由 Facebook 开发的一个用于构建用户界面的 JavaScript 库,采用组件化开发,支持虚拟 DOM 和单向数据流。 主要特性: 组件复用:将 UI 分割成独立的、可复…

html,js,react三种方法编写helloworld理解virtual dom

学习任何一个新语言&#xff0c;好像都从helloworld开始。&#xff1a;&#xff09;。 html helloworld 静态hello world <!DOCTYPE html> <html> <head><title>Hello World</title> </head> <body><p>Hello World</p&g…

数字化转型:开启未来发展新引擎

在当今飞速发展的时代&#xff0c;数字化转型已成为企业、组织乃至整个社会发展的关键趋势。 信息技术的迅猛发展&#xff0c;如互联网、大数据、人工智能等&#xff0c;为数字化转型提供了强大支撑。市场竞争的加剧&#xff0c;也促使企业不断寻求提升竞争力的方法&#xff0c…

OpenCV图像文件读写(6)将图像数据写入文件的函数imwrite()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将图像保存到指定的文件中。 函数 imwrite 将图像保存到指定的文件中。图像格式是根据文件名扩展名选择的&#xff08;参见 cv::imread 获取扩展…

利用git将项目上传到github

采用git而不是在pycharm中共享的原因&#xff1a;可能会出现上图报错 目录 1、创建github仓库2、在 git bash 中初始化Git仓库&#xff0c;添加文件&#xff0c;上传代码 1、创建github仓库 2、在 git bash 中初始化Git仓库&#xff0c;添加文件&#xff0c;上传代码

[Redis] 渐进式遍历+使用jedis操作Redis+使用Spring操作Redis

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…