Мне нужно разместить WebView в ScrollView. Но я должен поместить некоторые взгляды в тот же список прокрутки перед веб-просмотром. Итак, это выглядит так:
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:id="@+id/articleDetailPageContentLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/articleDetailRubricLine"
android:layout_width="fill_parent"
android:layout_height="3dip"
android:background="@color/fashion"/>
<ImageView
android:id="@+id/articleDetailImageView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitStart"
android:src="@drawable/article_detail_image_test"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5dip"
android:text="PUBLISH DATE"/>
<WebView
android:id="@+id/articleDetailContentView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/fashion"
android:isScrollContainer="false"/>
</LinearLayout>
Я получаю некоторую информацию HTML от бэкэнд. Он не имеет никаких тегов тела или головы, просто данные, окруженные <p>
или <h4>
или некоторые другие теги. Также там есть теги <img>
. Иногда картинки слишком широки для текущей ширины экрана. Поэтому я добавил некоторые CSS в начале HTML. Поэтому я загружаю данные в веб-просмотр следующим образом:
private final static String WEBVIEW_MIME_TYPE = "text/html";
private final static String WEBVIEW_ENCODING = "utf-8";
String viewport = "<head><meta name=\"viewport\" content=\"target-densitydpi=device-dpi\" /></head>";
String css = "<style type=\"text/css\">" +
"img {width: 100%;}" +
"</style>";
articleContent.loadDataWithBaseURL("http://", viewport + css + articleDetail.getContent(), WEBVIEW_MIME_TYPE,
WEBVIEW_ENCODING, "about:blank");
Иногда, когда страница загружается, scrollview прокручивается до места, где начинается веб-просмотр. И я не знаю, как это исправить.
Кроме того, иногда после содержимого веб-страницы появляется огромное белое пустое пространство. Я также не знаю, что с этим делать.
Иногда scrollbars scrollview начинает дрожать случайным образом, пока я прокручиваю...
Я знаю, что не правильно размещать webview в scrollview, но похоже, что у меня нет другого выбора. Может ли кто-нибудь предложить простой способ поместить все представления и весь контент HTML в веб-просмотр?