网易新闻、凤凰新闻等都实现了这个功能,通过手势右滑退出当前界面,IOS7做的更完善,当然,暂时还达不到IOS7那种效果。
主要就是重写ontouch事件,本来应该在down时监听,但不知为何scrollview监听不到,只好单纯监听move了,看了一下网易的,其实还应该写个手指滑动速度判断VelocityTracker,但懒得写了,这样还是可以达到要求的
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
//由于scrollview的down有问题,所以获取move第一个值
if(!isdown){
xDown = event.getX();
YDown=event.getY();
isdown=true;
}
xMove = event.getX();
yMove = event.getY();
//活动的距离
int distanceX = (int) (xMove - xDown);
//当滑动的距离大于我们设定的最小距离且滑动的瞬间速度大于我们设定的速度时,返回到上一个activity
//屏幕的2/5手感好
System.out.println((int)yMove-YDown);
if(distanceX > Constants.displayWidth*1/3 &&Math.abs((int)yMove-YDown)<Constants.displayHeight/10) {
//向右
onMoveListener.onRight();
}
break;
case MotionEvent.ACTION_UP:
isdown=false;
break;
}
return super.onTouchEvent(event);
}