【问题标题】:Android - Webview onPageFinished, still moves a bit afterAndroid - Webview onPageFinished,之后仍然移动了一点
【发布时间】:2016-10-11 19:39:48
【问题描述】:

不知道如何表达,但是在加载 webview 之后,在调用 onPageFinished 并删除加载器之后,仍然有一个小的“flash”,在一小段时间内元素可以很好地融入webview 或者我们看到一个小的刷新。

你们有同样的经历吗?我试图在不改变这种行为的情况下实现所有可能的设置。

我尝试了清单中的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);

【问题讨论】:

    标签: android webview


    【解决方案1】:

    好的,所以这里我们有几个选项。我认为onPageFinished()是在所有资源下载完成后触发的,但可能还没有正确应用,所以渲染阶段正在进行中。来自谷歌文档:

    调用onPageFinished()时,渲染图片可能不会 还没更新。

    他们建议使用onNewPicture() 回调,但它已被弃用。你可以试试onProgressChanged(),但显然它对你没有多大帮助。 当然,您可以扩展 WebView 并覆盖 invalidate()

    @Override
    public void invalidate() {
        super.invalidate();
    
        if (getContentHeight() > 0) {
            // WebView has displayed some content and is scrollable.
        }
    }
    

    但这东西也有点棘手。 WebView 的每一项重要任务都很棘手。我不认为渲染问题真的很严重,特别是如果它在onPageFinished() 被触发后的一秒后发生。

    【讨论】:

    • 我会调查此事并通知您,感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多