本项目基于开源项目android-Ultra-Pull-To-Refresh 进行鸿蒙化的移植和开发,可以通过项目标签以及github地址( https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh )追踪到原安卓项目版本
下拉刷新被广泛应用于各类app中。当用户使用app时,下拉刷新已经成为一种潜意识的操作。 本项目基于原安卓项目对该组件进行鸿蒙化的移植和开发。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
……
}
组件主要由头部header和主页面content组成。
header用于显示UI动画提示用户正在加载更新,content展示主页面内容。
刷新距离:header下拉需要达到一定距离才会触发刷新。这个距离定义为刷新距离。
刷新时保持头部的距离:刷新时,显示header动画效果表示正在加载更新,此时header的下拉距离定义为刷新时保持头部的距离。
释放刷新:header下拉达到刷新距离不触发刷新,手指释放后才会触发刷新。
达到刷新距离后,手指上滑使得下拉距离小于刷新距离,此时释放,不会触发刷新,header立即回到初始位置。
刷新时保持头部:如果设置刷新时保持头部,刷新时显示header动画效果表示正在加载更新,刷新完成之后,header回到初始位置。
如果不设置刷新时保持头部,释放之后,header立即回到初始位置。
本项目将刷新距离和刷新时保持头部距离合并为同一个距离,实现了释放刷新,并可选择是否设置保持头部。
2.接口和实现
PtrHandler接口
onRefreshBegin() 开始刷新时,调用这个方法进行数据刷新
checkCanDoRefresh() 调用这个方法确定下拉刷新的时机
onRefreshComplete() 刷新完成时,调用这个方法进行相关操作
PtrUIHandler接口
onUIRefreshPrepare() header被下拉,下拉距离没有达到刷新距离,调用这个方法进行相应操作
onUIRefreshBegin() header被下拉,下拉距离达到刷新距离,调用这个方法,开始刷新动画
onUIRefreshComplete() 刷新动画完成调用该方法进行相应操作
onUIPositionOver() header被下拉,下拉距离超过刷新距离,调用这个方法进行相应操作
Header使用了PtrUIHandler接口
setPullRefreshHeight(int pullRefreshHeight) 设置刷新距离
setmImage(Image mImage) 设置刷新动画相关图片
setText(Text mText) 设置刷新动画相关文本
ptrLayout使用了PtrHandler接口
setHeader(abstractHeader header) 设置头部组件
setContent(Component content) 设置主页面content
setPtrHandler(PtrHandler ptrHandler) 设置刷新接口
使用时可以通过继承Header和ptrLayout重写PtrUIHandler和PtrHandler接口中的方法实现自己定义的刷新动画效果和数据刷新效果
具体使用样例可以参考entry
CodeCheck代码测试无异常 VirusTotal病毒安全检测通过 测试员:黎天宁
Ultra-Pull-To-Refresh_ohos经过Apache License, version 2.0授权许可。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型