如何使用半透明覆盖层覆盖WebView,以防止WebView被触摸?

时间:2017-12-11 02:45:40

标签: android xml webview overlap

我正在尝试加载网页,但我希望用户看到页面加载但在页面加载之前无法与其进行交互。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent" >
<WebView  
    android:id="@+id/mainWebview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />
<LinearLayout
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:background="#40606060"
    />

我只是觉得我在它上面放了一个半透明的灰色层,当页面加载时我会隐藏它。我认为我需要的是某种容器内的两个视图。这篇文章(Can I overlap the WebView with an ImageButton?)有一个类似的问题,但当我使用WebView时,我仍然可以通过滚动进行互动。所以我一直在使用WebViewLinearLayout (我也在ImageView内尝试了FrameLayout(我也试过了GridLayout)。

在这两种情况下,我都可以像我想要的那样覆盖WebView,但我仍然可以通过用手指滚动来与Webview进行交互,我不希望这样。在HTML中,我只是将一个DIV放在另一个DIV之上,它可以实现这一点,但我不确定如何使用Android进行等效。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

只需将LinearLayout设为陈词滥调=&#34; true&#34;

<LinearLayout
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:background="#40606060"
    android:clickeable="true"
    />

答案 1 :(得分:0)

您可以按如下方式实施WebViewClient并扩展onPageFinished()

mWebView.setWebViewClient(new WebViewClient() {

   public void onPageFinished(WebView view, String url) {
        // do your stuff here
    }
});

您可以在WebView开始加载页面时显示进度对话框,并取消ProgressBar onPageFinished()方法。

告诉我你是否还有任何疑问......