android-Ultra-Pull-to-Refresh的坑

1 問(wèn)題描述
https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh/issues/133
在使用ptrfragmelayout 里面有scrollview,里面嵌套了recycle view和view pager的時(shí)候,左右橫滑變得極為困難。

2 解決

先看一下作者對(duì)控件的簡(jiǎn)單介紹:
https://www.liaohuqiu.net/cn/posts/the-pull-to-refresh-in-my-eyes/

這個(gè)是別人對(duì)其源碼的解析
https://github.com/grumoon/docs/tree/master/android-Ultra-Pull-To-Refresh

然后是找到的2個(gè)解決方案,我用了第一個(gè)
https://github.com/pip1998/android-Ultra-Pull-To-Refresh/commit/83531bf678c9db1b5f5f97b3caecddb671f178b5#diff-4c75de2c2057706468b3f5cbf30f67f1
https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh/pull/181

除了用了第一個(gè)代碼意外,如果你嵌套的是view pager的話(huà),還可以加上這樣的判斷
new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}

        @Override
        public void onPageSelected(int position) {
        }

        @Override
        public void onPageScrollStateChanged(int state) {
            if (state == ViewPager.SCROLL_STATE_IDLE) {
                canRefresh = true;
            } else {
                canRefresh = false;
            }
        }
    }

然后再加上
@Override
public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {
return canRefresh && PtrDefaultHandler.checkContentCanBePulledDown(frame, scrollview, header);
}

我自己fork的地址
https://github.com/dingbuoyi/android-Ultra-Pull-To-Refresh

改善了問(wèn)題描述里的情況,另外就是增加了onReleaseListener接口

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容