之前学习了自定义RecyclerView的LayoutManager,一直无用武之地,最近看“爱奇艺阅读”时发现了个不错的RecyclerView LayoutManger样式,于是自己来实现一波,正好巩固下。
实现功能:
Step 1. Add the JitPack repository to your build file
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.ljm17:TopHeavyLayoutManager:1.1.0'
}
构造方法:
//TopHeavyLayoutManager
TopHeavyLayoutManager();
TopHeavyLayoutManager(int space);
TopHeavyLayoutManager(float childScale, float coverScale);
TopHeavyLayoutManager(int space, float childScale, float coverScale);
//TopSnapHelper
TopSnapHelper(int fillingLimit);
参数
介绍
space
相邻child view之间的间距,默认 60 px
childScale
尾部child view的缩放值,默认 0.5f
coverScale
头部被覆盖的child view的缩放值,默认0.8f
fillingLimit
手指离开后filling的页数限制
如果想要实现无限循环,只需在RecyclerView.Adapter的getItemCount中返回Integer.MAX_VALUE,设置无限循环后,默认首个展示的item position为Integer.MAX_VALUE/2,若需调整请调用mRecyclerView.scrollToPosition(position)方法
*注意:不宜设置ItemDecoration,以免引起布局偏差。
mRecyclerView.setLayoutManager(new TopHeavyLayoutManager());
mRecyclerView.setAdapter(new xxxAdapter());
TopSnapHelper helper = new TopSnapHelper(2);
helper.attachToRecyclerView(mRecyclerView);
https://github.com/ljm17/TopHeavyLayoutManager
如有问题欢迎指出,若对你有帮助给个star把~
手机扫一扫
移动阅读更方便
你可能感兴趣的文章