ScrollView嵌套WebView滑動衝突問題

前言:

想必大家都是奔着標題而來的,那麼不管實際開發中是否有遇到過,這個確實是一個坑點!!!

問題描述:

在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;
              }
            });

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章