2016-10-11 90 views
0

之後仍然移動一點不確定如何表達,但在加載webview之後,在調用onPageFinished並且加載程序被移除之後,仍然存在一小段「閃光」,一小段時間元素適合web瀏覽器的時間,或者我們看到一個小的刷新。Android - Webview onPageFinished,在

你們是否遇到同樣的事情?我試圖實現所有可能的設置,而不會對此行爲進行任何更改。

我在清單 嘗試了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); 

回答

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()之後發生的一秒鐘之後。

+0

我會調查此並讓你知道,謝謝你的幫助 – Isabelle

相關問題