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接口