带webView的Activity中实现监听左右滑动

1.设置手检测器,初始化并在activity中重写dispatchTouchEvent方法 (对WebView的手势监听重写的不是onTouchEvent,而是dispatchTouchEvent)

GestureDetector detector; //手势监测器*
detector = new GestureDetector(this)

//监听webView需要在该方法中实现,而不是重写ONTOUCHEVENT方法
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//注意这里不能用ONTOUCHEVENT方法,不然无效的
detector.onTouchEvent(ev);
return super.dispatchTouchEvent(ev);

}

2.对应activity需要实现implements GestureDetector.OnGestureListener 并重写系列方法

/*以下为 OnGestureListener 的方法*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {

    return false;
}

@Override
public boolean onDown(MotionEvent e) {

    return false;
}

@Override
public void onShowPress(MotionEvent e) {

}

@Override //单击
public boolean onSingleTapUp(MotionEvent e) {
    return false;
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
    return true;
}

@Override // 长按
public void onLongPress(MotionEvent e) {

}

}

3.在方法中进行手势判断

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
float scollX = Math.abs(e1.getX() - e2.getX());
float scollY = Math.abs(e1.getY() - e2.getY());
if (e1.getX() - e2.getX() > 200 && scollX > scollY) {//向左滑,右边显示
//TODO 实现想要做的事情,比如加载下一个url
}
if (e1.getX() - e2.getX() < -200 && scollX > scollY) {//向右滑,左边显示
//TODO 实现想要做的事情,比如加载上一个url
}
return false;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值