HarmonyOS开发:下拉刷新库和日志库已适配NEXT版本

前言

在去年的时候,自己开源了多个鸿蒙库,其中一个是日志库,一个是下拉刷新库,感兴趣的同学可以查看下,两篇文章分别是:HarmonyOS开发:封装一个便捷的Log工具类HarmonyOS开发:开源一个刷新加载组件,大家可以直接点击打开。

因为之前是基于Api9进行封装的,在NEXT版本上使用会有不同的错误报出,而且,当时在OpenHarmony三方库中心仓的审核迟迟未通过,所谓的开源使用,只能通过静态共享包的形式使用,十分的不便;最近花了一些时间,把这两个库针对NEXT版本做了更新,于是分享出来,供大家使用。

本篇的文章内容如下:

1、日志库和刷新库开源地址

2、两个库主要做了哪些更改

3、总结

一、日志库和刷新库开源地址

刷新库:

ohpm.openharmony.cn/#/cn/detail...

日志库:

ohpm.openharmony.cn/#/cn/detail...

使用方式上,不再推荐静态包har的方式,推荐以下的远程方式依赖,方便功能的更新:

在工程的oh-package.json5中设置三方包依赖,配置示例如下,依赖后,同步项目即可。

text 复制代码
"dependencies": { 
  "@abner/refresh": "^1.0.1",
  "@abner/log": "^1.0.3"
}

在OpenHarmony三方库中心仓中已经做了大量的使用描述了,这里就不多介绍了,可以点进去,详细查看使用文档。

目前针对性的也把源码开源了出来,如果功能不满足,大家可以对其做针对扩展即可。

二、两个库主要做了哪些更改

1、日志库

日志库,和之前的使用上没有大的区别,仅仅优化了json格式化输出,由于Api的升级,NEXT版本不再支持{}这种形式的传参,其参数类型也不在支持any类型,必须需要显式标注对象字面量的类型。

简单举一个例子:

在之前,我们可以传递一个大括号形式对象,或者参数定义为any。

Typescript 复制代码
error({"name":"AbnerMing"})


static error(message: any, tag?: string) {
  
}

NEXT版本以上的写法就会编译错误,其错误为arkts-no-untyped-obj-literals和arkts-no-any-unknown,也就是,需要显式标注对象字面量的类型和不支持any和unknown类型。

可以修改为以下方式:

Typescript 复制代码
error(Object({"name":"AbnerMing"}))

static error(message: Object, tag?: string) {

}

目前的日志库升级之后,关于json的打印,和以上的案例很类似,目前暂时支持对象,或者转成对象的方式,或者对象转字符串的形式,不再支持原来的大括号形式打印;其它的普通形式打印保持不变。

2、下拉刷新库

优化刷新

之前无论是列表还是网格,如果有头部View,会使得下拉头展示错误,新的版本做了彻底的优化,无论在哪使用,都会很好的展示出来,同样的针对网格布局,在NEXT版本上也做了优化。

瀑布流刷新

新的版本,增加了瀑布流模式的列表的刷新。

代码如下:

TypeScript 复制代码
    StaggeredGridView({
      items: this.array, //数据源
      itemLayout: (item: UnionData, index: number) => this.itemLayout(item, index), //条目布局
      controller: this.controller, //控制器,负责关闭下拉和上拉
      onRefresh: () => {
        //下拉刷新
        this.controller.finishRefresh()
      },
      onLoadMore: () => {
        //上拉加载
        this.controller.finishLoadMore()
      }
    })

相关属性介绍:

属性 类型 概述
columnsTemplate string 展示几列,默认是两列
columnsGap Length 列与列的间距,默认为0
rowsGap Length 行与行的间距
bgColor ResourceColor 整体的背景
sWidth Length 宽度
sHeight Length 高度

三、总结

毕竟能力有限,难免在封装的时候有遗漏或者瑕疵,大家如果在使用的时候遇到问题,都可以进行提出,我看到后会做定期的处理。

相关推荐
CYRUS STUDIO30 分钟前
ARM64汇编寻址、汇编指令、指令编码方式
android·汇编·arm开发·arm·arm64
互联网时光机1 小时前
HarmonyOS第一课 07 从网络获取数据-习题
华为·harmonyos
chaosama1 小时前
禁止uni小程序ios端上下拉伸(橡皮筋效果)
ios·小程序
weixin_449310841 小时前
高效集成:聚水潭采购数据同步到MySQL
android·数据库·mysql
Zender Han1 小时前
Flutter自定义矩形进度条实现详解
android·flutter·ios
S0linteeH2 小时前
iOS 18.2 六大新功能外媒實測|ChatGPT進化版SIRI、自製Genmoji
ios
似水流年QC2 小时前
初探鸿蒙:从概念到实践
华为·harmonyos
HMS Core3 小时前
融合虚拟与现实,AR Engine为用户提供沉浸式交互体验
华为·ar·harmonyos
白乐天_n3 小时前
adb:Android调试桥
android·adb
姑苏风7 小时前
《Kotlin实战》-附录
android·开发语言·kotlin