(三) LtRecyclerView v2.x (自定义刷新View)

(一) 超简单自定义上下刷新布局-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的展示即可

猜你喜欢

转载自blog.csdn.net/qq_33505109/article/details/80677778