ViewFlipper也可以结合onTouchEvent实现手势滑动。
在MainActivity中重写onTouchEvent方法,可以响应各种屏幕事件。通过一个变量startX保存手势起始坐标,并与当前坐标比较,可以判断向左滑动还是向右滑动。
示例代码如下:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN: //手指按下
startX = event.getX();
break;
case MotionEvent.ACTION_MOVE: //手指滑动
//向右滑动
if(event.getX() - startX > 100){
viewFlipper.setInAnimation(this, R.anim.left_in);
viewFlipper.setOutAnimation(this, R.anim.left_out);
viewFlipper.showPrevious();
}
//向左滑动
if(startX - event.getX() > 100){
viewFlipper.setInAnimation(this, R.anim.right_in);
viewFlipper.setOutAnimation(this, R.anim.right_out);
viewFlipper.showNext();
}
break;
case MotionEvent.ACTION_UP: //手指离开
break;
}
return super.onTouchEvent(event);
}