1. 程式人生 > >SwipeRefreshLayout與ViewPager滑動事件衝突解決

SwipeRefreshLayout與ViewPager滑動事件衝突解決

問題描述:

開發中發現,SwipeRefreshLayout的下拉重新整理,與ViewPager開發的banner的左右滑動事件有一點衝突,導致banner的左右滑動不夠順暢。很容易在banner的左右滑動的過程中,觸發SwipeRefreshLayout的下拉重新整理,從而導致banner左右滑動的體驗很差。

解決方案:

可以在ViewPager的滑動時候設定SwipeRefreshLayout暫時不可用,ViewPager的滑動效果就變得很流暢了。

程式碼示例:

			mViewPager.setOnTouchListener(new View.OnTouchListener() {
				              @Override
				              public boolean onTouch(View v, MotionEvent event) {
				                  switch (event.getAction()) {
				                      case MotionEvent.ACTION_MOVE:
				                    	  mSwipeRefresh.setEnabled(false);
				                          break;
				                      case MotionEvent.ACTION_UP:
				                      case MotionEvent.ACTION_CANCEL:
				                    	  mSwipeRefresh.setEnabled(true);
				                         break;
				                 }
				                 return false;
				             }
				         });