(一) 超简单自定义上下刷新布局-LtRecyclerView v2.x版本(基本使用)
(二) LtRecyclerView v2.x (更多实用方法)
(三) LtRecyclerView v2.x (自定义刷新View)
6.自定义上拉加载的View
6.1.通过setUpLayoutId()方法传入一个id可以控制全局的上拉刷新View
原理是通过显示和隐藏布局内的两个View来表示刷新与否
设置该方法的布局,需要把刷新中的View(或ViewGroup)的id设置为ll1,刷新完成的View的id设置为ll2,即可
//自定义配置全局的上拉加载View
LtRecyclerViewManager.create().init(this)
.setUpLayoutId(R.layout.lt_up_loading);//此方法设置一个layout的id,设置为上拉加载的View
6.2.若要单独配置某一个适配器的上拉加载View
则在LtAdapter的构造里传入相应的View即可
6.3.如果不想要上拉加载,则在LtAdapter的构造里传入new View(),默认使用全局的传null即可
7.自定义下拉刷新的View
7.1.内部有两个下拉刷新,一个是系统的SwipeRefreshLayout和我预定义的MTextRefreshLayout
默认使用的是SwipeRefreshLayout:
可以设置为MTextRefreshLayout:
LtRecyclerViewManager.create().init(this)
.setRefreshLayoutClazz(MTextRefreshLayout.class);
也可以更改为rv不移动,只拉出刷新的View:
LtRecyclerViewManager.create().init(this)
.setRvIsMove(false)//设置下拉刷新时rv是否跟着移动,只有在自定义时可用
.setRefreshLayoutClazz(MTextRefreshLayout.class);
7.2.也可以通过继承LtRefreshLayout来实现下拉刷新的View
示例:
public class MRefreshLayout extends LtRefreshLayout {//继承LtRefreshLayout并重写方法
public MRefreshLayout() {//需要重写四个构造方法,注意一定要重写无参构造并调用父类的无参构造
super();
}
public MRefreshLayout(Context context) {
super(context);
}
public MRefreshLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MRefreshLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void onStatus(int status) {
//当状态变更时调用,在此方法中更改刷新View的状态,一共有四个状态
public final static int REFRESH_DOWN = 0;//下拉中
public final static int REFRESH_RELEASE = 1;//松开刷新
public final static int REFRESHING = 2;//刷新中
public final static int REFRESH_FINISH = 3;//刷新完成
}
@Override
public void onProgress(float y) {
//当前y轴移动了多少,一般不需要这个方法,注意该方法会被频繁调用,不要在里面创建对象或耗时操作
}
@Override
protected View getRefreshView() {//返回下拉刷新的View
return null;
}
}
LtRecyclerViewManager.create().init(this)
//.setRefreshThreshold(100)//设置松开刷新的位置(全局的阈值)
.setRefreshLayoutClazz(MRefreshLayout.class);//配置全局使用自定义的刷新View
上面就完成了自定义的下拉刷新View,下拉时移动等操作已经在内部实现了,只需要控制刷新View的展示即可