2

単一の 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 にロードする際にスライドイン効果があることをご存知でしょう。そのため、読み込み中に画面の一部 (通常は半分) にスライドして、それ以上スライドしないことがあり、その結果、コンテンツが幅全体に表示されません。バグは多くのデバイスで再現されています (スクリーンショットは Sony Xperia S のもので、一部の Samsung Galaxy S2 でも安定して再現されています)。

ハードウェア アクセラレーションを有効にしても効果がありません。

では、なぜこのバグが発生するのでしょうか。そして、それを解決する方法は?

ここに画像の説明を入力

4

3 に答える 3

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>
于 2012-12-10T12:04:57.233 に答える
2

ビューポート メタデータをローカル html に定義する必要があります。モバイル デバイス用の html の開発には、より慎重な検討が必要です。

このページを読んでみてください。

于 2012-12-10T13:06:19.713 に答える
-1

を に変更してみることができRelativeLayoutますLinearLayout

私はあなたのような問題を抱えており、その変更を加えることで問題を解決します。

于 2017-06-09T08:26:31.460 に答える