Android - Webview onPageFinished,仍然有点移动

时间:2016-10-11 09:45:50

标签: android webview

不确定如何表达,但是在加载webview之后,在调用onPageFinished并删除加载程序后,仍然会出现一个小的"闪存",一小段时间元素非常适合webview的时间,或者我们看到一个小的刷新。

你们经历过同样的事吗?我试图实现所有可能的设置,而不会改变这种行为。

我在Manifest中尝试了android:hardwareAccelerated="true" 我还尝试设置像这些

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

1 个答案:

答案 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()被触发后一秒钟之后发生的情况就会发生。