加载本地数据时,WebView未填充整个屏幕宽度

时间:2012-12-10 11:54:08

标签: android webview android-webview

我有一个简单的布局,只有一个webview。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <WebView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/webview" />

</RelativeLayout>

我需要从本地资源将数据加载到webview中。 我是这样做的:

String str = "100% valid html with doctype and other things";
view.loadDataWithBaseURL(null, str, "text/html", "utf-8", null);

但有时它并没有填满整个宽度。您知道,将数据加载到webview时会有滑入效果。因此,在加载时有时会滑动到屏幕的某些部分(通常是半部分)并且不会滑动得更远,因此内容不会填满整个宽度。 Bug正在许多设备上复制(屏幕截图来自Sony Xperia S,也在一些三星Galaxy S2上稳定复制)。

启用硬件加速功能无济于事。

那么,为什么会出现这个错误呢?以及如何解决?

enter image description here

3 个答案:

答案 0 :(得分:3)

试试这个

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    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"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentBottom="true" />

</RelativeLayout>

答案 1 :(得分:2)

您需要将viewport元数据定义到本地html。为移动设备开发html需要更仔细的考虑。

尝试阅读this page

答案 2 :(得分:-1)

您可以尝试将RelativeLayout更改为LinearLayout

我遇到了像你这样的问题,我通过改变来解决问题。