发布于2026-07-21 阅读(0)
扫一扫,手机访问
在鸿蒙UI开发中,滚动列表的交互体验一直是开发者关注的重点。今天要介绍的overscroll-decor,就是专门解决过度滚动(overscroll)动画效果的一个开源库。它能让你的RecyclerView、ListView、ScrollView、GridView等组件拥有类似iOS的丝滑回弹体验,而且几乎可以套用到所有Android本机可滚动视图上——当然,在鸿蒙环境下,它的用法大同小异。

先聊聊这个库的亮点。几个关键点值得拿出来说:
安装方式很简单,一条命令搞定:
ohpm install @ohos/overscroll-decor
具体有哪些接口可用?下面这个表格列得清清楚楚,方便你快速查阅:
| 接口 | 方法说明 |
|---|---|
| getHeight() | 获取组件高度 |
| setHeight() | 设置组件高度 |
| getWidth() | 获取组件宽度 |
| setWidth() | 设置组件宽度 |
| getMargin() | 获取组件边缘度 |
| setMargin() | 设置组件边缘度 |
| getOrientation() | 获取组件方向 |
| setOrientation() | 设置组件方向 |
| isScrollBar() | 判断是否是滚动条 |
| setScrollBar() | 设置滚动条 |
| isOverScrollBounceEffect() | 是否有滚动反弹效果 |
| setOverScrollBounceEffect() | 设置滚动反弹效果 |
| isUpOverScroll() | 是否向上滚动 |
| setUpOverScroll() | 设置向上滚动 |
| getOffsetX() | 获取离开X的值 |
| setOffsetX() | 设置离开X的值 |
| getOffsetY() | 获取离开Y的值 |
| setOffsetY() | 设置离开Y的值 |
| getTextColor() | 获取字体颜色 |
| setTextColor() | 设置字体颜色 |
| getDragColorTop() | 获取拖动顶部颜色 |
| setDragColorTop() | 设置拖动顶部颜色 |
接下来看看具体怎么用。所有滚动容器视图的使用方法都大同小异,这里以GridView为例,分四步走:
private model: OverScrollDecor.Model = new OverScrollDecor.Model()
private aboutToAppear() {
this.model
.setUpOverScroll(true)
.setOrientation(OverScrollDecor.ORIENTATION.VERTICAL)
.setOverScrollBounceEffect(true)
.setScrollBar(true)
.setWidth("100%")
.setHeight("80%")
}
@Builder SpecificChild() {
Column({ space: 10 }) {
......
}.width('100%')
}
build() {
Stack({ alignContent: Alignment.TopStart }) {
......
OverScrollDecor({ model: this.model!!, child: () => { this.SpecificChild() } })
......
}
最后再梳理一下默认属性,方便你快速上手时调整:
px2vp(2340),即 mHeight: number | string = px2vp(2340)px2vp(lpx2px(720)),即 mWidth: number | string = px2vp(lpx2px(720))mMargin: number = 16mOrientation: ORIENTATION = 0mScrollBar: boolean = truemOverScrollBounceEffect: boolean = falsemUpOverScroll: boolean = true这些默认值基本能满足大多数场景,如果你需要更个性化的交互反馈,直接修改对应属性即可。整体而言,overscroll-decor上手成本很低,效果却很讨喜,值得在你的鸿蒙项目里试一试。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8