您的位置:首页 > 其它

SwipeRefreshLayout和Viewpager滑动时冲突解决方法

2016-03-10 16:43 597 查看
使用第三方(如融云IM)集成封装好的Fragment时无法在Viewpager的里面一层界面添加SwipeRefreshLayout,这将导致SwipeRefreshLayout使用时发生冲突,如下:



可以看到两个刷新图标,最下面的是最外层的包裹Viewpager的刷新图标,上面的一个是包裹在viewPager里的刷新图标。

这时候如下处理冲突:

mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch (position) {
case 0:
swipeRefreshTop.setEnabled(true);
mSegmentControl.setCurrentIndex(0);
break;
case 1:
if(swipeRefreshTop.isRefreshing())
{
swipeRefreshTop.setRefreshing(false);
}
swipeRefreshTop.setEnabled(false);
mSegmentControl.setCurrentIndex(1);
break;
}
}
@Override
public void onPageScrollStateChanged(int state) {

}
});


中心思想是当界面跳转到viewpager里面包裹的界面时,调用上层界面的
swipeRefreshTop.setEnabled(false);
方法即可,当返回无法嵌套swipeRefreshLayout的界面时设置其
swipeRefreshTop.setEnabled(true);
即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: