前言:
想必大家都是奔着標題而來的,那麼不管實際開發中是否有遇到過,這個確實是一個坑點!!!
問題描述:
在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;
}
});