2016-10-11 12 views
0

表現方法はわかりませんが、Webviewがロードされた後、onPageFinishedが呼び出されてローダーが削除された後、小さな「フラッシュ」、つまり小さな期間要素がWebビューにうまく収まらないか、小さなリフレッシュが発生します。Android - Webview onPageFinished、まだ少し動いています

皆さんも同じことを経験していますか?私は、この動作に変更を加えることなくすべての設定を実装しようとしました。

私はまた、これらの

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

オクラホマのようなwebSettingsを設定しようとしましたので、ここで我々はいくつかのいくつかのオプションを持っているマニフェスト でandroid:hardwareAccelerated="true"を試してみました。私は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()が発生してから1秒後に発生する場合には、特に重要であるとは思わない。

+0

私はこれを調査し、助けてくれてありがとう – Isabelle

関連する問題