Android WebView.loadDataWithBaseURL загрузка первой страницы - беспорядок. Как это исправить?

1

Я использую WebView.loadDataWithBaseURL для загрузки моей страницы справки из внутренних ресурсов моего приложения.

У меня есть help.html и несколько изображений, расположенных в каталоге ресурсов. Страница загружается и отображается с изображениями, но текст вокруг изображения беспорядок. Он не отображался в правой части изображения, вместо этого изображение перекрывает текст.

Это происходит только при первой загрузке страницы. Если я закрою WebView и снова открою его, тогда все будет в порядке. Похоже, что при первой загрузке WebView тратит некоторое время на загрузку изображений и после этого не переформатирует страницу. Во второй попытке изображения кэшируются и отображаются вместе с текстом и правильно отформатированы.

Каково решение этой проблемы?

Кто-нибудь сталкивался с этой проблемой?

Вот мой код:

    app.setContentView(R.layout.help);
    final WebView web = (WebView) app.findViewById(R.id.helpWebView);
    web.setBackgroundColor(0);
    web.loadDataWithBaseURL("file:///android_asset/", helpHtml, "text/html", "utf-8", null);        

Веб-страница находится внутри строки helpHtml с кодом:

<html><head></head><body><img src="html/flddesc.png" align="left"/>this should be my long long text...</body></html>

P.S: html/flddesc.png - это изображение PNG8 размером 180x200 ~ 20kb размера

Теги:
webview
android-webview

1 ответ

4
Лучший ответ

Попробуйте эту функцию:

webview.loadUrl("file:///android_asset/your_html.html");
  • 1
    Спасибо. loadURL работает правильно. Поэтому loadDataWithBaseURL имеет неполную или ошибочную реализацию.
  • 0
    Я так не думаю. Это предназначено для другой цели. Проверьте его документацию здесь, вы поймете: developer.android.com/reference/android/webkit/WebView.html
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню