2016-04-26 78 views
0

我有一個活動,其中包含一個ViewPager,它使我可以在四頁之間滑動,在底部有一個RelativeLayout,其中包含頁面的選項卡。我想知道是否可以這樣做,當我拖動底部RelativeLayout時,它會開始一個新的活動,結束ViewPager活動。是否可以向上滑動到另一個活動

新增可怕圖,以幫助解釋

enter image description here

+0

嘗試[this](http://androidexample.com/Swipe_screen_left__right__top_bottom/index.php?view=article_discription&aid=95&aaid=118) – Sanoop

回答

-1
import android.content.Context; 
import android.view.GestureDetector; 
import android.view.GestureDetector.SimpleOnGestureListener; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 

public class OnSwipeTouchListener implements OnTouchListener { 



private final GestureDetector gestureDetector; 
private Context context; 


public boolean onTouch(final View view, final MotionEvent motionEvent) { 
    return gestureDetector.onTouchEvent(motionEvent); 
} 


public GestureDetector getGestureDetector(){ 
    return gestureDetector; 
} 

/** 
* Instantiates a new on swipe touch listener. 
* 
* @param context 
*   the context 
*/ 
public OnSwipeTouchListener(Context context) { 
    super(); 
    this.context = context; 
    gestureDetector = new GestureDetector(context, new GestureListener()); 
} 

    private final class GestureListener extends SimpleOnGestureListener { 

    private static final int SWIPE_THRESHOLD = 100; 
    private static final int SWIPE_VELOCITY_THRESHOLD = 100; 

    /* (non-Javadoc) 
    * @see   android.view.GestureDetector.SimpleOnGestureListener#onDown(android.view.MotionEvent) 
    */ 
    @Override 
    public boolean onDown(MotionEvent e) { 
     return true; 
    } 

    /* (non-Javadoc) 
    * @see android.view.GestureDetector.SimpleOnGestureListener#onFling(android.view.MotionEvent, android.view.MotionEvent, float, float) 
    */ 

    @Override 
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
     boolean result = false; 
     try { 
      float diffY = e2.getRawY() - e1.getRawY(); 
      float diffX = e2.getRawX() - e1.getRawX(); 
      if ((Math.abs(diffX) - Math.abs(diffY)) > SWIPE_THRESHOLD) { 
       if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { 
        if (diffX > 0) { 
         onSwipeRight(); 
        } else { 
         onSwipeLeft(); 
        } 
       } 
      } else { 
       if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) { 
        if (diffY > 0) { 
         onSwipeBottom(); 
        } else { 
         onSwipeTop(); 
        } 
       } 
      } 
     } catch (Exception e) { 

     } 
     return result; 
    } 
} 


public void onSwipeRight() { 
} 

public void onSwipeLeft() { 
} 


public void onSwipeTop() { 
} 


public void onSwipeBottom() { 
} 
} 

實現:

OnSwipeTouchListener onSwipeTouchListener = new   OnSwipeTouchListener(Activity.this) { 
     @Override 
     public void onSwipeLeft() { 
      //your actions 
     } 
    }; 
相關問題