OverScroll
利用CoordinatorLayout+Behavior实现列表弹性滚动和惯性滚动效果(类似微信首页),支持水平和垂直方向的滚动,效果如下:
Usage 用法
Gradle
allprojects { repositories { ... maven { url 'https://jitpack.io' } }} dependencies { implementation 'com.github.1993hzw:OverScroll:1.1.1'}复制代码
在xml布局文件中添加类似代码:
... 复制代码...
当然你可以在CoordinatorLayout
中使用OverScrollHorizontalRecyclerView
, OverScrollVerticalRecyclerView
或 OverScrollScrollView
.
现在你的布局就实现了弹性滚动和惯性滚动效果啦!
拓展
你还可以拓展该控件以实现更复杂的交互效果,设置 或者添加 .
IOverScrollView overScrollView = findViewById(R.id.overscroll_view);overScrollView.setOverScrollCallback(new IOverScrollCallback() { @Override public boolean canScroll(IOverScroll overScroll, View child, int scrollDirection) { ... } @Override public int getMaxFlingOffset(IOverScroll overScroll, View child, int scrollDirection) { ... } @Override public float getDampingFactor(IOverScroll overScroll, View child, int scrollDirection) { ... } @Override public int getMinFlingVelocity(IOverScroll overScroll, View child, int scrollDirection) { ... } @Override public void onOffsetChanged(IOverScroll overScroll, View child, int offset) { ... } @Override public boolean onSpringBack(IOverScroll overScroll, View child) { ... } @Override public void onStopSpringingBack(IOverScroll overScroll, View child) { ... }});overScrollView.addOffsetChangeListener(new IOffsetChangeListener() { @Override public void onOffsetChanged(View child, int offset) { ... }});复制代码
(默认IOverScrollCallback
接口的实现为)
项目地址
多谢支持我的!