美文网首页Android开发经验谈Android开发Android知识
关于PullToRefresh 上拉加载更多以及下拉刷新失效的问

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

作者: lukUrself | 来源:发表于2017-09-05 18:53 被阅读1002次

最近测试反馈一个旋转屏幕之后,界面不能上拉加载更多以及下拉刷新的问题,因为该界面允许旋转屏幕之后就销毁重建,
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()

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()方法去,果不其然

image2.png

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

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/rckpjxtx.html