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

How to cover a WebView with a semi-transparent covering layer that prevents the WebView from being touched?

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

<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"
    />

我只是想在上面放一个半透明的灰色层,当页面加载时我会隐藏它。我认为我需要的是某种容器内的两个视图。这个 post (Can I overlap the WebView with an ImageButton?) 有一个类似的问题但是当我使用 WebView 我仍然可以通过 scrolling.So 与它交互我一直在使用 WebViewLinearLayout(我也试过ImageView)在FrameLayout(我也试过GridLayout)里面。

在这两种情况下,我都可以像我想要的那样覆盖 WebView,但我仍然可以通过用手指滚动来与 Webview 交互,但我不希望这样。在 HTML 中,我会把一个 DIV 放在另一个上面,它会完成这个,但我不确定如何用 Android.

做同样的事情

感谢您的帮助!

您可以按如下方式实现 WebViewClient 和扩展 onPageFinished()

mWebView.setWebViewClient(new WebViewClient() {

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

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

如果您还有任何疑问,请告诉我...

只需将您的 LinearLayout 设置为可点击即可 = "true"

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