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 高度

三、总结

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

相关推荐
Bigger5 小时前
Flutter 开发实战:解决华为 HarmonyOS 任务列表不显示 App 名称的终极指南
android·flutter·华为
利剑 -~8 小时前
mysql面试题整理
android·数据库·mysql
梧桐ty9 小时前
鸿蒙应用冷启动优化:Flutter首屏秒开与白屏治理实战
flutter·华为·harmonyos
梧桐ty9 小时前
驾驭未来:基于鸿蒙的Flutter车载应用与手机端协同实战
flutter·华为·harmonyos
梁同学与Android10 小时前
Android ---【经验篇】ArrayList vs CopyOnWriteArrayList 核心区别,怎么选择?
android·java·开发语言
沐怡旸11 小时前
【翻译】adb screenrecord 帮助文档
android
FrameNotWork11 小时前
HarmonyOS 教学实战(五):路由、页面生命周期与多页面架构
华为·架构·harmonyos
lienyin11 小时前
Android 简单的SFTP服务端+客户端通信传文件
android
云和数据.ChenGuang12 小时前
鸿蒙电视的核心技术
华为·harmonyos·数据库运维工程师·运维教程
AirDroid_cn13 小时前
鸿蒙NEXT:升级系统时提示 “存储空间不足” 如何解决?
华为·harmonyos