我在清单中声明了一个WebView活动:
<activity android:name=".MyWebView"
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.Dialog">
</activity>
WebView看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<WebView android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
当我在主活动中启动此活动时,只有包含应用程序名称的对话框标题可见,但WebView不可见。如果我将一个TextView添加到LinearLayout,它也会显示,但仍然缺少WebView。
如果我不在清单中应用android:theme="@android:style/Theme.Dialog"
,则会显示WebView。
为什么这样,我如何在对话框中显示WebView?
答案 0 :(得分:23)
我发现如果你将webview更改为wrap_content而不是fill_parent,它会起作用。不知道为什么。这可能是一个错误。
答案 1 :(得分:3)
我找到的最好的方法就是这样一个小技巧:
注意mindidth和minHeight的1000dp
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="1000dp"
android:minHeight="1000dp" >
<WebView android:id="@+id/web_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
另一种方法是将内容包装在WebView上,但在加载网页之前它不会扩展。所以它会从小开始,然后展开。这种hackish方式将使大型对话开始。
答案 2 :(得分:0)
我认为你在做什么会起作用。也许尝试覆盖对话框类而不是活动类。
答案 3 :(得分:0)
使用WebView作为根布局 - 没有任何周围的元素。 不知道为什么它不适用于周围的布局。