0

ハードコードされた文字列 (約 1500 文字) から読み込まれた HTML を表示する Web ビューがあります。HTML バリデーターでテストされた HTML。html は単純で、javascript ではなく、div タグと p タグが含まれています。Android バージョン 4 でのみ、スクロールのある空白のページが表示されます。Android バージョン 4 未満では正常に動作します。残念ながら、ホールコードを公開することはできません。

Android 4 WebView に違いはありますか?

私のコード:

mWebView.setWebChromeClient(mWebChromeClient);
mWebView.setWebViewClient(mWebViewClient);
mWebView.addJavascriptInterface(new JavaScriptInterface(getActivity()),JavaScriptInterface.NAME);

if (CLEAR_CACHE_ON_LOAD) {
    mWebView.clearCache(true);
}

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);

mWebView.loadDataWithBaseURL("fake://", htmlString, "text/html", "UTF-8", "fake://");
//OR -
mWebView.loadData(htmlBase64String, "text/html", "base64");

XML:

<ScrollView
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/expandingView" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
            <WebView
                android:id="@+id/webview"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:fadingEdge="vertical"
                android:layerType="software"
                android:scrollbars="none" />

            <View
                android:id="@+id/webViewClickOverlay"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </FrameLayout>

        <LinearLayout
            android:id="@+id/more_about_container"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/color_white_grey_selector"
            android:gravity="center_vertical"
            android:padding="@dimen/padding_medium"
            android:visibility="gone" >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="@dimen/padding_medium"
                android:text="@string/more_about"
                android:textColor="@color/vocativ_purple"
                android:textSize="@dimen/text_size_medium"
                android:textStyle="bold" />
            <TextView
                android:id="@+id/label_more_about"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ellipsize="end"
                android:lines="1"
                android:text="SECOND NIGHT OF BLA"
                android:textColor="@color/vocativ_pink"
                android:textSize="@dimen/text_size_medium"
                android:textStyle="bold" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawableRight="@drawable/ic_arrow_pink" />
        </LinearLayout>

        <include
            android:id="@+id/related_content_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            layout="@layout/widget_story_container" />
    </LinearLayout>

</ScrollView>
4

1 に答える 1

1

android:layerType="software" を android:layerType="none" に設定する必要があります

次のリンクを参照してください

于 2013-04-08T12:15:19.070 に答える