滑动ViewPager引起swiperefreshlayout刷新的冲突

ViewPager是Android中提供的页面切换的控件,SwipeRefreshLayout是Android提供的下拉刷新控件,通过SwipeRefreshLayout可以很简单的实现下拉刷新的功能,但是如果SwipeRefreshLayout的子view中如果包含了ViewPager,会发现滑动ViewPager的时候,很容易引起SwipeRefreshLayout的下拉刷新操作为了解决这个冲突可以这样实现

 1 viewPager.setOnTouchListener(new View.OnTouchListener() {
 2             @Override
 3             public boolean onTouch(View v, MotionEvent event) {
 4                 switch (event.getAction()) {
 5                     case MotionEvent.ACTION_MOVE:
 6                         swipeRefreshLayout.setEnabled(false);
 7                         break;
 8                     case MotionEvent.ACTION_UP:
 9                     case MotionEvent.ACTION_CANCEL:
10                         swipeRefreshLayout.setEnabled(true);
11                         break;
12                 }
13                 return false;
14             }
15         });

ViewPager,设置OnTouchListener,里面当ACTION_MOVE的时候设置SwipeRefreshLayout不可用,当ACTION_UP或者ACTION_CANCEL的时候设置SwipeRefreshLayout可以,就可以解决这个冲突了

时间: 2024-10-28 08:09:58

滑动ViewPager引起swiperefreshlayout刷新的冲突的相关文章

厦门海关贸易通APP新闻滑动tab下拉刷新bug解决

在厦门海关贸易贸易通APP一期接近收尾阶段,发现一个bug:滑动tab下拉刷新页面,当新闻listView滑下来时,再往下滑,无法上滑,而是直接刷新的bug,如下图. 解决: 在adapter.activity.fragment三个文件多处打log后将问题锁定在 ViewPagerFragment 中的checkCanDoRefresh()的最后return返回值始终为true.针对性打log发现getFirstVIsiblposition和getChildAt(0).getTop(),这个两个

移动端tab滑动和上下拉刷新加载

移动端tab滑动和上下拉刷新加载 查看demo(请在移动端模式下查看) 查看代码 开发该插件的初衷是,在做一个项目时发现现在实现移动端tab滑动的插件大多基于swiper,swiper的功能太强大而我只要一个小小的tab滑动功能,就要引入200+k的js这未免太过浪费.而且swiper是没有下拉刷新功能的,要用swiper实现下拉刷新还得改造一番.在实现功能的同时产生了不少bug.要是在引入一个下拉刷新的插件又难免多了几十kb的js.而且这些插件对dom结构又是有一定要求的,一不小心就有bug.

HorizontalScrollView滑动 ViewPager切换

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools

ViewPager+TabLayout+Fragment刷新Fragment中的数据

1.ViewPager与TabLayout的初始化: private void initData() { mTabFragmentAdapter = new TabFragmentFirstAdapter(getSupportFragmentManager(), mDeptType); mVp.setAdapter(mTabFragmentAdapter); mVp.addOnPageChangeListener( new TabLayout.TabLayoutOnPageChangeListe

解决ViewPager多次刷新后重叠问题

@Override public void destroyItem(ViewGroup container, int position, Object object) { ((ViewPager) container).removeView((View) object); } 加上(View)object即可

iOS开发页面滑动返回跟scrollView左右划冲突问题

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { // 首先判断otherGestureRecognizer是不是系统pop手势 if ([otherGestureRecognizer.view isKindOfClas

ViewPager与Fragment刷新数据

唉,每次都忘记怎么写,还是老老实实记一下吧! public class MDTabViewPagerAdapter extends FragmentStatePagerAdapter { private static final String TAG = MDTabViewPagerAdapter.class.getSimpleName(); private List list; private FragmentManager fm; public MDTabViewPagerAdapter(F

70.Android开发知识点总结

转载:http://blog.csdn.net/worst_hacker/article/details/49867043 1.android之wifi开发 http://blog.csdn.net/wangkuifeng0118/article/details/7339578 2.Android shape中的padding无效 http://ilgnep.iteye.com/blog/1634139 3.自定义的上下拉刷新和SwipeListView+下拉 http://download.c

SwipeRefreshLayout与ViewPager滑动事件冲突解决

问题描述: 开发中发现,SwipeRefreshLayout的下拉刷新,与ViewPager开发的banner的左右滑动事件有一点冲突,导致banner的左右滑动不够顺畅.很容易在banner的左右滑动的过程中,触发SwipeRefreshLayout的下拉刷新,从而导致banner左右滑动的体验很差. 解决方案: 可以在ViewPager的滑动时候设置SwipeRefreshLayout暂时不可用,ViewPager的滑动效果就变得很流畅了. 代码示例: mViewPager.setOnTou