不确定如何表达,但是在加载webview之后,在调用onPageFinished
并删除加载程序后,仍然会出现一个小的"闪存",一小段时间元素非常适合webview的时间,或者我们看到一个小的刷新。
你们经历过同样的事吗?我试图实现所有可能的设置,而不会改变这种行为。
我在Manifest中尝试了android:hardwareAccelerated="true"
我还尝试设置像这些
WebSettings webSettings = webView.getSettings();
webSettings.setDomStorageEnabled(true);
webSettings.setDatabaseEnabled(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginState(WebSettings.PluginState.ON);
webSettings.setJavaScriptCanOpenWindowsAutomatically(false);
webSettings.setUseWideViewPort(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setSupportZoom(false);
webView.setVerticalScrollBarEnabled(false);
webView.setHorizontalScrollBarEnabled(false);
webView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
答案 0 :(得分:0)
好的,所以这里我们几个选项。我认为在下载所有资源时会触发onPageFinished()
,但它们可能尚未正确应用,因此渲染阶段正在进行中。来自Google文档:
当调用onPageFinished()时,渲染图片可能不是 已更新。
他们建议使用onNewPicture()回调,但不推荐使用。你可以尝试onProgressChanged()但显然它不会对你有所帮助。
当然,您可以扩展WebView并覆盖invalidate()
:
@Override
public void invalidate() {
super.invalidate();
if (getContentHeight() > 0) {
// WebView has displayed some content and is scrollable.
}
}
但这个东西也有点棘手。使用WebView的每个重要任务都很棘手。我不认为渲染问题非常重要,特别是如果它在onPageFinished()
被触发后一秒钟之后发生的情况就会发生。