当我第一次创建活动时,一切都很顺利。但是,在我从菜单中选择更改字符串值的某些文本并通过
设置webview之后webview.loadData(result, "text/html; charset=UTF-8", null);
webview.loadData(result, "text/html; charset=UTF-8", null);
我必须做两次,否则webview将保持不变。有谁知道这里发生了什么?由于结果字符串是相同的,为什么webview强迫我两次loadData?
答案 0 :(得分:26)
避免WebView#loadData(String data, String mimeType, String encoding) - 这是错误的。
所以你的指示就像:
webview.loadDataWithBaseURL(null,result,"text/html", "utf-8", null);
答案 1 :(得分:0)
不知道你的问题是什么,但是看一下webview文档,你错误地使用了loadData方法:
Webview:loadData documentation
您可能应该像这样调用您的网页视图:
webview.loadData(result, "text/html", "UTF-8");
不知道它是否能解决你的问题。
答案 2 :(得分:0)
我正在将本地HTML数据加载到我的Web视图中,并且该Web视图位于recyclerview中, 当我尝试webview.loadData()第一次渲染时,它可以正常工作,但是当我向下滚动时,每个膨胀的webview都会陷入混乱。 当我尝试第二个webview.loadDataWithBaseURL()时,它的工作原理就像魅力。
因此,当您在本地加载HTML时,它引用的资产(例如图像和CSS)也都在本地打包,请使用webview.loadDataWithBaseURL()
答案 3 :(得分:-1)
是的,使用loadDataWithBaseURL可以刷新数据,但是会忽略CSS正文的background-color! ...至少它不能解析与loadData一起使用的“%23000000”。