Установить ширину WebView для упаковки содержимого HTML?

Мне нужна операция для загрузки HTML-документа в WebView, но для того, чтобы WebView затем изменился, чтобы он плотно обертывал документ HTML. например если HTML-документ содержит один div размером 300x200 пикселей, я бы хотел, чтобы WebView изменял размер 300px x 200px, чтобы точно содержать документ.

Вертикально WebView ведет себя естественным образом. Высота WebView (с wrap_content) определяется высотой HTML-документа, но странно не шириной, которая всегда заполняет ширину (если только размер не указан для ширины). то есть, насколько я вижу, использование layout_width = "wrap_content" с помощью WebView не работает.

Есть ли способ настроить WebView таким образом, чтобы изменить его ширину? Я не вижу этого. Если содержимое HTML тоньше ширины экрана, я хочу, чтобы WebView был тоньше.

Если нет, существует ли способ получить абсолютный размер элементов после рендеринга в модели документа HTML, который затем я могу использовать для изменения размера ширины WebView?

Чтобы продемонстрировать здесь инструкцию для загрузки статического содержимого в WebView:

browser.loadDataWithBaseURL("/", "Hello!", "text/html", "utf-8", null);

И вот простой макет

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible"
        />
</LinearLayout>

Я ожидаю, что это покажет WebView в верхнем левом углу, проходящем по ширине, но вместо этого он простирается полностью по всей ширине экрана (несмотря на то, что wrap_content и содержимое меньше ширины)

enter image description here

Ответы

Ответ 1

Я думаю, вы можете использовать android: layout_marginRight = 200px функция WebView в вашем макете xml.