我了解到动画效果可以运用到布局中,能实现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事件。如果我把当前的布局触摸并且滑动到左边,下一个布局就会在当前的视图中。
如何处理这个问题啊?
让activity实现onGestureListener
然后在activity添加
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 event)
@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;
}
给你这个文档参考一下:ViewPager。