SwipeRefreshLayout和Viewpager滑动时冲突解决方法
2016-03-10 16:43
597 查看
使用第三方(如融云IM)集成封装好的Fragment时无法在Viewpager的里面一层界面添加SwipeRefreshLayout,这将导致SwipeRefreshLayout使用时发生冲突,如下:
可以看到两个刷新图标,最下面的是最外层的包裹Viewpager的刷新图标,上面的一个是包裹在viewPager里的刷新图标。
这时候如下处理冲突:
中心思想是当界面跳转到viewpager里面包裹的界面时,调用上层界面的
可以看到两个刷新图标,最下面的是最外层的包裹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);即可。
相关文章推荐
- 主组织物料界面仅查看设置
- php curl
- C++中的mutable和volatile
- C++中的mutable和volatile
- W3CDom操作XML文档实用工具类
- C/C++ 浮点数转化为 2,8,10,16 进制的数
- Ubuntu 解决 locale 问题
- Linux-非结构化数据同步-Lsyncd介绍
- 1.2Linux文件系统
- EM 算法 理论
- Geoip geoip-api-php 库包使用 - 通过ip 找到国家
- 文件流
- 【程序员基本功】字符集-编码、UNICODE-UTF的关系总结
- iOS--TexiField相关
- iOS开源收集
- 一次项目杂记
- Git
- Android onTouchEvent事件中onTouch方法返回值详解
- java 数据类型
- Android 实现Activity全屏显示