前言:
想必大家都是奔着标题而来的,那么不管实际开发中是否有遇到过,这个确实是一个坑点!!!
问题描述:
在Android开发中难免遇到Android与Js交互,要想实现交互,第一步就得使用WebView去加载一个html页面,这样才会有许多接下来的操作,使用WebView加载的时候难面遇到一屏幕元素多,但是还得让WebView的界面可滑动时,那外层布局就必须得套一层ScrollView,这样就会发现你你内部的WebView不可滑动了,只可以滑动ScrollView。
解决思路:
就是控制touch事件的分发,当WebView的touch事件收到了ACTION_UP事件时,就控制该事件由WebView接收,不在向下分发了,当WebView的touch事件检测非ACTION_UP事件时,则向下分发,交由ScrollView处理,这样就避免了touch事件分发下去WebView无滑动响应的问题。
mWebView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
mWebView.requestDisallowInterceptTouchEvent(false);
} else {
mWebView.requestDisallowInterceptTouchEvent(true);
}
return false;
}
});