2013-10-07 38 views
1

我在我的應用程序中使用Web視圖每件事情​​對我來說都很好,但我遇到了一個小問題。當網址包含免責聲明我不應該讓網絡瀏覽應該是可點擊的。但在所有其他情況下,網絡視圖應該是可點擊的。如何使WebView Clickable False和True

@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
        if(url.contains("Disclaimers")){ 
         view.setClickable(false); 

         //Here clickable should be fasle. 

         return true; 
        }else{ 
         // In this clickable should be true. 
         view.setClickable(true); 

         if(!url.contains("/Home.mvc/Trade")){ 
          showProgressLayout(); 
         } 
       if(url.contains("/Home.mvc/Trade")){ 
          openTradeScreen(url); 
         }else{ 
          view.loadUrl(url); 
         }     
         return true; 
        } 
       } 

回答

2

嘗試view.setEnabled(false);的WebView停止用戶交互。因爲我相信view.setClickable(true);不適合你。

0

我知道這是一個老問題,但其他人也可能會發現this answer here有用。似乎比只設置爲false可以更好地解決問題。

對於lazyness的緣故,我會複製從答案這裏的解決方案(編輯對於這個場景,假設view是的WebView):)

view.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return true; 
    } 
}); 

原來的答案給出瞭如下解釋過:

禁用WebView上的所有觸摸事件,因爲觸摸偵聽器在WebView的默認觸摸行爲之前執行。通過返回true,事件被消耗並且不會傳播到WebView。

使用android:clickable =「false」不會禁用觸摸事件。