如何使WebView Clickable错误和真实

时间:2013-10-07 11:35:21

标签: android android-webview webviewclient

我在我的应用程序中使用Web视图每件事对我来说都很好,但我遇到的问题很小。当网址包含免责声明时,我不应该允许网络视图应该是可点击的。但在所有其他情况下,web-view应该是可点击的。

 @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 个答案:

答案 0 :(得分:2)

尝试view.setEnabled(false);停止 WebView 上的用户互动。我确信view.setClickable(true);无法正常使用。

答案 1 :(得分:2)

我知道这是一个老问题,但其他人也可能会发现this answer here有用。似乎解决问题比设置只是可点击为假更好。

对于懒惰'我将在这里复制该答案的解决方案(为此方案编辑,假设view是webview):))

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

原始答案也给出了以下解释:

  

禁用WebView上的所有触摸事件,因为触摸侦听器是在WebView的默认触摸行为之前执行的。通过返回true,事件被消耗,并且不会传播到WebView。

     

使用android:clickable =" false"不会禁用触摸事件。