2012-11-19 63 views
0

我有一個ViewPagerListView頭,現在每一件事情運作良好,我想接下來要做的,就是讓用戶有資格在ViewPager頁面之間移動,並能點擊頁面,我可以發射一個新的Activity。我在ViewPager上試過setOnClickListener,但是當我想在頁面之間移動時它被觸發了。任何解決此問題的方法?ViewPager解決了onClick事件

編輯:我不想setOnClickListener在ViewPager的任何視圖。像Button

+0

你到底想做什麼?你想開始一個新的活動onClick查看傳呼?視圖尋呼機頁面中必須有一些組件可以正確點擊嗎? – Antrromet

+0

我希望整個頁面都是可點擊的。所以簡而言之,我想知道如果用戶是否在投擲(「在viewpager中的頁面之間移動」)或點擊它。 – user4o01

回答

0

您需要將onClickListener設置爲您的查看傳呼機adapter中的視圖(也許是一個按鈕)並處理適配器中的單擊。

編輯
您可以使用ViewFlipper來實現這種功能。

private static final int SWIPE_MIN_DISTANCE = 120; 
    private static final int SWIPE_MAX_OFF_PATH = 250; 
    private static final int SWIPE_THRESHOLD_VELOCITY = 200; 

class MyGestureDetector extends SimpleOnGestureListener { 
     @Override 
     public boolean onSingleTapConfirmed(MotionEvent arg0) { 
      //Single Tap 
      return false; 
     }; 

     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
       float velocityY) { 
      try { 
       if (Math.abs(e1.getY() - e2.getY()) > REL_SWIPE_MAX_OFF_PATH) 
        return false; 

       if (e1.getX() - e2.getX() > REL_SWIPE_MIN_DISTANCE 
         && Math.abs(velocityX) > REL_SWIPE_THRESHOLD_VELOCITY) { 
        ViewFlipper vf = (ViewFlipper) findViewById(R.id.flipper); 
        vf.setInAnimation(pushRightIn); 
        vf.setOutAnimation(pushLeftOut); 
        // right to left swipe 
       } 

       else if (e2.getX() - e1.getX() > REL_SWIPE_MIN_DISTANCE 
         && Math.abs(velocityX) > REL_SWIPE_THRESHOLD_VELOCITY) { 
        ViewFlipper vf = (ViewFlipper) findViewById(R.id.flipper); 
        vf.setInAnimation(pushLeftIn); 
        vf.setOutAnimation(pushRightOut); 
        // left to right swipe 
       } 
      } catch (Exception e) { 
      } 
      return false; 
     } 
    } 
+0

看我的編輯..... – user4o01