Android WebView.loadDataWithBaseURL 第一页加载一团糟。如何修复它?

发布于 2024-11-07 20:58:41 字数 905 浏览 1 评论 0原文

我使用 WebView.loadDataWithBaseURL 从应用程序的内部资源加载帮助页面。

我的 asset 目录中有 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>

PS: html/flddesc .png 是大小为 180x200 ~20kb 的 PNG8 图像

I use WebView.loadDataWithBaseURL for loading my help page from internal resources of my application.

I have help.html and a few images located in the assets directory. The page loads and shows with images, but the text around image is a mess. It did not show on the right side of the image, instead the image overlaps the text.

This happens only on first loading of the page. If I close the WebView and open it again, then everything is fine.
It seems that at first loading WebView spends some time for loading images and does not reformat page after that. On the second attempt images are cached and displayed together with text and properly formatted.

What is the solution for this problem?

Did anyone face this problem too?

Here is my code:

    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);        

Web page is inside the helpHtml string with the code:

<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 is a PNG8 image 180x200 ~20kb of size

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

古镇旧梦 2024-11-14 20:58:41

试试这个功能:

webview.loadUrl("file:///android_asset/your_html.html");

Try this function:

webview.loadUrl("file:///android_asset/your_html.html");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文