如何用半透明覆盖层覆盖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 与它交互我一直在使用 WebView
和LinearLayout
(我也试过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"
/>
我正在尝试加载网页,但我希望用户看到页面加载但在页面加载之前无法与之交互。
<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 与它交互我一直在使用 WebView
和LinearLayout
(我也试过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"
/>