2014-04-02 34 views
0

當我將這段代碼添加到我的ViewPager時,ViewPager的滑動在垂直滾動視圖內平滑。在ViewPager中添加onClickListener使滑動不平滑Android

mPager.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
     public boolean onTouch(View v, MotionEvent event) { 
     v.getParent().requestDisallowInterceptTouchEvent(true); 
     return false; 
    } 
}); 

但是當我添加onClickListener我的ImageView [被發現在該片段中加入Viewpager的適配器],我ViewPager的刷卡不正確。不正確的,我需要有一個直的水平線滑動,以便它不像之前[當我沒有添加onClickListener]時轉到另一個頁面,即使我做了DIAGONAL滑動,viewpager也會轉到下一頁。任何幫助深表感謝。謝謝。

回答

1

我剛剛使用setontouchlistener來我的imageview並設置條件。

下面的代碼:

imgCarousel.setOnTouchListener(new OnTouchListener() { 
@Override 
public boolean onTouch(View arg0, MotionEvent event) { 
    switch (event.getAction()) { 
    case MotionEvent.ACTION_DOWN: { 
     pStart = new Point((int) event.getX(), (int) event.getY()); 
     break; 
    } 

    case MotionEvent.ACTION_UP: {    
     break; 
    } 

    case MotionEvent.ACTION_MOVE:{ 
     break; 
    } 

    case MotionEvent.ACTION_CANCEL:{ 
     Point pCancel = new Point((int) event.getX(), (int) event.getY()); 

     int difference = pStart.x - pCancel.x; 
     if(difference > 10){ 
      mPager.setCurrentItem(HomeCarousel.currentPage+1);    
     } 
    } 

    default: 
     break; 
    } 
    return true; 
} 
}); 
+0

你可以發佈一些代碼來明確顯示你是如何做到的嗎? – NirMH

+0

@NirMH我更新了我的答案。請參見。 – kads

0

我想,它發生的原因是ImageView攔截使用onClickListener的touchEvent。 您可以使用GestureOverlayView和您的ImageView - 它可以處理觸摸事件而不會攔截它們。

+0

謝謝,但我可以問該怎麼辦呢? – kads

相關問題