1 问题描述
https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh/issues/133
在使用ptrfragmelayout 里面有scrollview,里面嵌套了recycle view和view pager的时候,左右横滑变得极为困难。
2 解决
先看一下作者对控件的简单介绍:
https://www.liaohuqiu.net/cn/posts/the-pull-to-refresh-in-my-eyes/
这个是别人对其源码的解析
https://github.com/grumoon/docs/tree/master/android-Ultra-Pull-To-Refresh
然后是找到的2个解决方案,我用了第一个
https://github.com/pip1998/android-Ultra-Pull-To-Refresh/commit/83531bf678c9db1b5f5f97b3caecddb671f178b5#diff-4c75de2c2057706468b3f5cbf30f67f1
https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh/pull/181
除了用了第一个代码意外,如果你嵌套的是view pager的话,还可以加上这样的判断
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
改善了问题描述里的情况,另外就是增加了onReleaseListener接口