关于PullToRefresh 上拉加载更多以及下拉刷新失效的问题

最近测试反馈一个旋转屏幕之后,界面不能上拉加载更多以及下拉刷新的问题,因为该界面允许旋转屏幕之后就销毁重建,
But,销毁重建我也设置Mode为Both了, 百思不得其解,没办法排坑咯

       mPullToRefreshRecyclerView = (PullToRefreshRecyclerView) (rootView.findViewById(R.id.homepage_fragment_recyclerview));
        mPullToRefreshRecyclerView.setMode(PullToRefreshBase.Mode.BOTH);
        mPullToRefreshRecyclerView.setScrollingWhileRefreshingEnabled(false);
        mRecyclerView = mPullToRefreshRecyclerView.getRefreshableView();

想着当我滑动屏幕时PullToRefresh的onInterceptTouchEvent()逻辑是咋处理的, 在方法里第一句就看到可疑的方法了-->isPullToRefreshEnabled()

关于PullToRefresh 上拉加载更多以及下拉刷新失效的问题_第1张图片
image1.png

于是乎, 打了个断点, 发现这里 return false,也就是说他把滑动事件上交给国家了(不拦截上下的滑动事件了),excuse me? OK, 接着跟下去

@Override
    public final boolean isPullToRefreshEnabled() {
        return mMode.permitsPullToRefresh();
    }

boolean permitsPullToRefresh() {
            return !(this == DISABLED || this == MANUAL_REFRESH_ONLY);
        }

mMode是个内部枚举类, 跟到这里瞬间就明白了, 这里我外部虽然设置了Mode,霸特,内部肯定修改了这个值 , 这时候就该抖一下机灵了, 反推一下视图销毁,view走了重建... 二话不说奔着onRestoreInstanceState()方法去,果不其然

关于PullToRefresh 上拉加载更多以及下拉刷新失效的问题_第2张图片
image2.png

0 --> disable, 把这个手动修改过来即可.
希望帮到遇到此问题的人!

你可能感兴趣的:(关于PullToRefresh 上拉加载更多以及下拉刷新失效的问题)