鸿蒙自定义刷新组件使用

前言

DevEco Studio版本:4.0.0.600

1、RefreshLibrary_HarmonyOS.har,用于HarmonyOS

        "minAPIVersion": 9,

        "targetAPIVersion": 9,

        "apiReleaseType": "Release",

        "compileSdkVersion": "3.2.3.6",

        "compileSdkType": "HarmonyOS"

2、RefreshLibrary_OpenHarmony.har , 用于OpenHarmony

        "minAPIVersion": 9,

        "targetAPIVersion": 10,

        "apiReleaseType": "Release",

        "compileSdkVersion": "4.0.10.13",

         "compileSdkType": "OpenHarmony"

注:下面示例都是以RefreshLibrary_OpenHarmony.har 为例

使用效果:

  

har包下载:

下载地址:https://download.csdn.net/download/Abner_Crazy/88754702

如何使用

第一步:har包引用

参考文档:

Harmony如何引用har包

List列表使用

通过上面的下载链接下载之后,把har包复制到项目中,在项目src/main目录下新建目录lib,将har包复制进去。

然后在项目的oh-package.json5中添加对har包的引用,添加完成后会报错,只需要将鼠标放在错误处,出现Run 'ohpm install'后执行下就行了。

"dependencies": {"@app/RefreshLibrary": "file:./src/main/libs/RefreshLibrary_OpenHarmony.har"
}

第二步:查看引用是否成功

引用成功后会在项目目录下生成一个oh_modules目录,如果有@app/RefreshLibrary则成功,无则失败。

第三步:代码使用

1、RefreshListView调用(带默认刷新头部和尾部)
RefreshListView({list: this.list,controller: this.controller,refreshLayout: (item, index): void => this.itemLayout(item, index),onItemClick: (item, index) => {console.info("Index------   点击了:index: " + index + " item: " + item)},onRefresh: () => {//下拉刷新},onLoadMore: () => {//上拉加载}
})

参数解释:

属性是否必须描述
list必须数据源,数组类型
controller必须

刷新控件的控制器,控制关闭下拉刷新和上拉加载

finishRefresh():关闭下拉刷新

finishLoadMore():关闭上拉加载

refreshLayout必须子item的视图
onRefresh非必须下拉刷新的回调
onLoadMore非必须上拉加载的回调
onItemClick非必须item的点击事件回调
2、RefreshView调用(刷新头部和尾部需要自定义)
RefreshView({list: this.list,controller: this.controller,headerLayout: () => this.headerLayout(), //下拉刷新布局footLayout: () => this.footLayout(), //上拉加载布局refreshLayout: (item, index): void => this.itemLayout(item, index),onItemClick: (item, index) => {console.info("Index------   点击了:index: " + index + " item: " + item)},onRefresh: () => {//下拉刷新},onLoadMore: () => {//上拉加载}
})

参数解释:

属性是否必须描述
list必须数据源,数组类型
controller必须

刷新控件的控制器,控制关闭下拉刷新和上拉加载

finishRefresh():关闭下拉刷新

finishLoadMore():关闭上拉加载

refreshLayout必须子item的视图
headerLayout必须自定义下拉刷新的视图样式
footLayout必须自定义上拉加载的视图样式
onRefresh非必须下拉刷新的回调
onLoadMore非必须上拉加载的回调
onItemClick非必须item的点击事件回调

第四步:详细示例

import { RefreshController, RefreshView, RefreshListView } from "@app/RefreshLibrary"@Entry
@Component
struct Index {@State list: Array<number> = []@State controller: RefreshController = new RefreshController()aboutToAppear() {this.refreshData()}// 刷新测试数据private refreshData() {this.list = []for (var i = 0; i < 10; i++) {this.list.push(i)}}// 加载更多测试数据private loadMoreData() {let initValue = this.list[this.list.length-1] + 1this.list.push(initValue)}@BuilderitemLayout(item: object, index: number) {Text("我是测试数据: " + index).width("95%").height(50).margin(10).textAlign(TextAlign.Center).border({ width: 1, color: Color.Blue })}@BuilderheaderLayout() {Text("我是自定义头部").width("100%").height(50).margin(10).textAlign(TextAlign.Center)}@BuilderfootLayout() {Text("我是自定义底部").width("100%").height(50).margin(10).textAlign(TextAlign.Center)}build() {Stack() {RefreshView({list: this.list,controller: this.controller,//如果是3.1的DevEcoStudio,this.controller会报错,使用$controller代替headerLayout: () => this.headerLayout(), //下拉刷新布局footLayout: () => this.footLayout(), //上拉加载布局refreshLayout: (item, index): void => this.itemLayout(item, index),onItemClick: (item, index) => {console.info("Index------   点击了:index: " + index + " item: " + item)},onRefresh: () => {//下拉刷新console.info("Index------   onRefresh")//模拟数据加载setTimeout(() => {this.controller.finishRefresh()this.refreshData()}, 2000)},onLoadMore: () => {//上拉加载console.info("Index------   onLoadMore")//模拟数据加载setTimeout(() => {this.controller.finishLoadMore()this.loadMoreData()}, 2000)}})// RefreshListView({//    list: this.list,//    controller: this.controller,//    // headerLayout: () => this.headerLayout(), //下拉刷新布局//    // footLayout: () => this.footLayout(), //上拉加载布局//    refreshLayout: (item, index): void => this.itemLayout(item, index),//    onItemClick: (item, index) => {//       console.info("Index------   点击了:index: " + index + " item: " + item)//    },//    onRefresh: () => {//       //下拉刷新//       console.info("Index------   onRefresh")//       //模拟数据加载//       setTimeout(() => {//          this.controller.finishRefresh()//          this.refreshData()//       }, 2000)//    },//    onLoadMore: () => {//       //上拉加载//       console.info("Index------   onLoadMore")//       //模拟数据加载//       setTimeout(() => {//          this.controller.finishLoadMore()//          this.loadMoreData()//       }, 2000)//    }// })}.width('100%').height('100%')}
}

第五步:使用自定义headerLayout和footLayout效果

  

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

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

相关文章

用户画像系列——在线服务调优实践

前面文章讲到画像的应用的几个方面&#xff0c;其中画像的在线服务应用主要是在推荐场景、策略引擎场景&#xff0c;这两部分场景都是面向线上的c端服务。 推荐场景&#xff1a;根据不同的用户推荐不同的内容&#xff0c;做到个性化推荐&#xff0c;需要读取画像的一些偏好数据…

【方法】如何把Excel“只读方式”变成可直接编辑?

Excel在“只读方式”下&#xff0c;编辑后是无法直接保存原文件的&#xff0c;那如何可以直接编辑原文件呢&#xff1f;下面来一起看看看吧。 如果Excel设置的是无密码的“只读方式”&#xff0c;那在打开Excel后&#xff0c;会出现对话框&#xff0c;提示“是否以只读方式打开…

什么是甘特图?谁还不知道?做管理的来看看!

在现代商业社会&#xff0c;项目管理已成为不可或缺的技能。而甘特图作为一种强大的项目管理工具&#xff0c;正逐渐受到越来越多人的青睐。那么&#xff0c;什么是甘特图&#xff1f;又有什么工具可以绘制甘特图呢&#xff1f;本文将为你一一解答。 一、甘特图的定义 甘特图…

Unity - 简单音频视频

“Test_04” 音频 使用AudioTest脚本控制Audio Source组件&#xff0c;在脚本中声明"music"和"se"之后&#xff0c;在unity中需要将音频资源拖拽到对应位置。 AudioTest public class AudioTest : MonoBehaviour {// 声明音频// AudioClippublic AudioC…

Vulnhub-dc4

靶场下载 https://download.vulnhub.com/dc/DC-4.zip 信息收集 判断目标靶机的存活地址: # nmap -sT --min-rate 10000 -p- 192.168.1.91 -oN port.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-21 16:36 CST Stats: 0:00:03 elapsed; 0 hosts completed (1 up…

三、MySQL之创建和管理表

一、基础知识 1.1 一条数据存储的过程 存储数据是处理数据的第一步 。只有正确地把数据存储起来,我们才能进行有效的处理和分析。否则,只 能是一团乱麻,无从下手。 在 MySQL 中, 一个完整的数据存储过程总共有 4 步,分别是创建数据库、确认字段、创建数据表、插入数据。 …

在字节5年被优化,太难了。。。

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 先简单说下&#xff0c;涵哥是某不知名 985 的本硕&#xff0c;17 年毕业加入字节&#xff0c;以…

自学网安-DNS

01DNS Domain Name Service域名服务 作用&#xff1a;为客户机提供域名解析服务器 02域名组成 2.1域名组成概述 如"www.sina.com.cn"是一个域名&#xff0c;从严格意义上讲&#xff0c;"sina.com.cn"才被称为域名(全球唯一)&#xff0c;而"www"…

layui 自定义日期选择器今日、昨日 、本周、本月、上个月等

1、layui 日期选择器 laydate日期选择器 <div class"layui-input-inline"><input class"layui-input" id"dateTime" placeholder"日期范围"> </div><script> layui.use([laydate], function () {laydate.ren…

QT upd测试

QT upd测试 本次测试将服务器和客户端写在了一个工程下&#xff0c;代码如下 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QUdpSocket> #include<QTimer>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACE…

编程入门:五个你必须知道的编程常识

常识1&#xff1a;编程不仅仅是写代码 当我们谈论编程时&#xff0c;大多数人首先想到的是写代码。这是正确的&#xff0c;但并不完整。编程不仅仅是写代码&#xff0c;而是解决问题的一种方式。编程是一种工具&#xff0c;我们使用它来创建能够解决特定问题的产品和服务。 比…

qmt和ptrade有什么区别?国内免费量化交易软件精选:让你轻松上手量化交易!

QMT 和 PTrade 是两个不同的平台&#xff0c;具有不同的功能和特点。 QMT&#xff08;Quantitative Market Trading&#xff09;是一种量化交易平台&#xff0c;主要面向专业的量化交易员和机构交易员。它提供了一系列的工具和功能&#xff0c;帮助交易员进行定量分析、模型开…

C#用DateTime.Now静态属性返回日期的星期信息

目录 一、使用的方法 1.Now属性 2.ToString方法 二、示例 使用DateTime结构的Now静态属性&#xff0c;可以方便地获取系统日期信息。调用时间对象的ToString方法&#xff0c;在该方法的参数中添加适当的格式化字符串&#xff0c;将返回日期的星期信息。 一、使用的方法 1…

【Linux】安装n卡驱动,美化gnome

文章目录 1.换源以及更新&#xff08;十分重要不要跳过&#xff01;&#xff09;2.安装依赖&#xff08;十分重要不要跳过&#xff01;&#xff09;3. 安装n卡驱动独显与核显切换nvidia-settings消失忘记安装依赖无法进入图形化界面的急救命令行无响应办法 gnome美化安装-tweak…

【网络安全】-基本工具msf

secure 1、有此漏洞的目标主机2、无此漏洞的目标主机&#xff08;常用&#xff09; ps.本着兴趣爱好&#xff0c;加强电脑的安全防护能力&#xff0c;并严格遵守法律和道德规范。msf&#xff08;metasploit framework&#xff09;是一个开源的渗透测试框架&#xff0c;用于开发…

JAVA:OFD Reader Writer 开源库技术解析

1、简述 OFD Reader & Writer 是一个由开源社区推动的 OFD 文件处理库&#xff0c;它旨在提供对 OFD 格式文件的读取和写入功能。这一开源项目为开发者提供了强大而灵活的工具&#xff0c;使得在应用程序中处理和生成 OFD 文件变得更加容易和高效 开源地址&#xff1a;htt…

【RF FILTER 仿真】滤波器 Ansys Electronics not ADS

第一&#xff0c;声明 全网搜索&#xff0c;用这个HFSS继承的介绍非常少&#xff0c;并且没有什么指导意义。所以有必要写一下&#xff0c;就像之前的xpedition,总要挑战一下吧。本文仅仅和大家学习研究&#xff0c;对比ADS体会一下差别。 第二&#xff0c;记录直接开始&…

【服务器】安装Docker环境

目录 &#x1f33a;【前言】 &#x1f33c;1. 打开Xshell软件 &#x1f33b;2. 安装Docker环境 ①&#xff1a;下载docker.sh脚本 ②&#xff1a;列出下载的内容 ③&#xff1a;执行一下get-docker.sh文件&#xff0c;安装docker ④&#xff1a;运行docker服务 ⑤&…

openEuler操作系统安装+部署+配置

目录 一、下载 二、创建虚拟机实例 三、安装部署 四、配置OpenEuler22.03 1、登录账号 2、Xshell建立连接 3、关闭防火墙及SELinux 4、修改主机名修改root密码 5、配置yum源 6、查看网卡配置 7、用yum下载软件 8、网络配置 1&#xff09;nmtui --图形化界面配置 …

攸信UMS工业配送AMR F1引领智能物流发展,侨智大会瞩目焦点

近日&#xff0c;由中国侨联、福建省人民政府共同主办的第一届中国侨智发展大会在福州开幕。本次大会以“五洲聚‘福’汇侨智&#xff0c;同心共圆中国梦”为主题&#xff0c;立足福建、服务全国、面向海外&#xff0c;吸引了来自37个国家和地区的一千余名海内外嘉宾参会。 01|…