我在我的一个应用程序中遇到了使用webview显示的问题.
当我调用loadData时,webview首先显示文本,然后加载页面的图像(标准行为).
有时,如果这些图像修改了文本位置,则不会清除旧文本位置,并且会显示旧文本和新文本+图像
这里是问题发生时的截图:
这就像webview没有正确地重绘它的内容.当然一个简单的invalidate()不起作用......
它不会经常发生,但可以说超过20次.
用于显示数据的代码(称为外部Activity生命周期方法):
// Include the html headers to the content received from WS String webtext = String.format(ConfigApp.HTML_BODY, wsdata.getText()); mWebView.setWebChromeClient(...); mWebView.setWebViewClient(...); mWebView.setBackgroundColor(0); mWebView.loadDataWithBaseURL(null, webtext, "text/html", "UTF-8", null);
知道如何解决这个问题吗?
我终于找到了解决问题的方法.
删除WebView透明背景:
String webtext = String.format(ConfigApp.HTML_BODY, wsdata.getText()); mWebView.setWebChromeClient(...); mWebView.setWebViewClient(...); // mWebView.setBackgroundColor(0); mWebView.loadDataWithBaseURL(null, webtext, "text/html", "UTF-8", null);
因为我的WebView有一个空白背景,所以对我来说没问题.也许这对其他人来说可能很烦人.
肯定这是一个WebView错误.