2014-03-02 36 views

回答

0

可以get Disaplay width
然後你就可以在你的viewpager覆蓋onTouchEvent
當您獲得MotionEvent對象時 - 您可以獲得「水龍頭」座標,並且您將能夠了解屏幕用戶點擊並處理它的哪一側。

+0

這是否會干擾ViewPager的正常滑動? – Omar

+0

這取決於。當您重寫onTouchEvent時,您應該返回布爾標誌:如果事件已處理,則返回True,否則返回false。 如果你打電話給'return super.onTouchEvent(event)' - 兩種方法都可以工作(我不確定,但你可以試試)。 – x90

0

爲您的ViewPagerViewPager項目的contentview設置觸摸監聽器。

取屏幕/視圖寬度的一半,檢查event.getX()是否大於半值,如果是,則轉到下一個,否則轉到上一個。

@Override 
public boolean onTouch(View v, MotionEvent ev) { 
    if(ev.getAction() == MotionEvent.ACTION_DOWN){ 
     mDownX = ev.getX(); 
     mDownY = ev.getY(); 
     isOnClick = true; 
    }else if(ev.getAction() == MotionEvent.ACTION_UP){ 
     if (isOnClick) { 
       if(ev.getX() > mViewPager.getWidth()/2) { 
        //go to next 
       }else{ 
       //go to previous 
        } 
       return true; 

     } 
    }else if(ev.getAction() == MotionEvent.ACTION_MOVE){  
    if (isOnClick && (Math.abs(mDownX - ev.getX()) > DRAG_THRESHOLD || Math.abs(mDownY - ev.getY()) > DRAG_THRESHOLD)) { 
     isOnClick = false; 
     return false; 
    } 


} 
    return false 
} 
+0

這會干擾ViewPager的正常滑動嗎? – Omar

+0

是的。看到我編輯的答案。 –

相關問題