美文网首页Android知识手机移动程序开发Android开发
WebView和手势识别有冲突--个人笔记

WebView和手势识别有冲突--个人笔记

作者: 不识水的鱼 | 来源:发表于2017-01-09 13:40 被阅读187次

手势识别和webview很多时候会出现冲突,一般我们用于接收GestureDetector对象的方法是OnTouchevent();,而在View组件占用了屏幕空间之后,这个方法就无效了,只有换成 dispatchTouchEvent方法才有效!

GestureDetector detector = new GestureDetector(this,this);

需要重写的方法

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {    
            detector.onTouchEvent(ev);        
            webView.onTouchEvent(ev);//这几行代码也要执行,将webview载入MotionEvent对象一下,况且用载入把,不知道用什么表述合适    
    return super.dispatchTouchEvent(ev);
}

下面是滑动的识别,可以记录一下
//滑动

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {    
    if(e1!=null){        
        float beginY = e1.getY();        
        float endY = e2.getY();        
        if(beginY-endY>60&&Math.abs(velocityY)>0){   //上滑            
            layout.setVisibility(View.GONE);        
        }else if(endY-beginY>60&&Math.abs(velocityY)>0){   //下滑       
            layout.setVisibility(View.VISIBLE);        
        }    
    }    
    return false;
}

相关文章

网友评论

    本文标题:WebView和手势识别有冲突--个人笔记

    本文链接:https://www.haomeiwen.com/subject/xuiuvttx.html