我知道动画效果以及如何将它们应用于onclicklistener,ontouchlistener等的视图(布局),但是当我向左或向右滑动布局时会发生哪种事件。
previousButton.setOnClickListener(new OnClickListener() {
@Override
publicvoid onClick(View v) {
viewFlipper.setInAnimation(MainActivity.this,R.anim.view_transition_in_right);
viewFlipper.setOutAnimation(MainActivity.this,R.anim.view_transition_out_right);
viewFlipper.showPrevious();
}
});
}
我不想要onclicklistener。 ie)如果我触摸并将当前布局向左滑动,它应该出去,下一个布局应该在当前视图中。如何做到这一点?
答案 0 :(得分:1)
让您的活动实现onGestureListener。
然后在你的活动中添加
private GestureDetector gestureScanner;
gestureScanner = new GestureDetector(this);
private static final int SWIPE_MIN_DISTANCE = 100;
private static final int SWIPE_THRESHOLD_VELOCITY = 100;
然后覆盖onTouchEvent(MotionEvent事件),如下所示:
@Override
public boolean onTouchEvent(MotionEvent event) {
return gestureScanner.onTouchEvent(event);
}
最后,您需要覆盖onFling方法,例如:
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
/* on scroll to the next page */
if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY
) {
//Ur code goes here
}
/* on scroll to the previous page */
else if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY
) {
//ur code goes here.
}
return false;
}
希望这有帮助。
答案 1 :(得分:0)
您应该使用Fragments在视图之间滑动。使用FragmentActivity和Fragment(对于每个视图)。android developers example
或者您可以使用此opensource library
答案 2 :(得分:0)