1

Webビューのロード中にスプラッシュ画面を表示するソリューションを取得するために、私は何日も努力してきました。

私は周りを見回しましたが、いくつかのアプローチがあります:-スプラッシュ画面を表示するためだけにアクティビティを作成し、数秒待ってからWebビューアクティビティを開始します->スプラッシュ画面を閉じた後にすべての読み込みが再度行われるため、これは解決策ではありません

  • 2番目のアプローチは次のようなものです。

       myWebView = (WebView) findViewById(R.id.webview);
    myWebView.getSettings().setJavaScriptEnabled(true);
    myWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
    myWebView.setWebViewClient(new WebViewClient() {
       public void onPageFinished(WebView view, String url) {
           findViewById(R.id.webview).setVisibility(View.VISIBLE);
    
           //hide loading image
           findViewById(R.id.imageView1).setVisibility(View.GONE);
           //show webview
          }
        });
    

    これは機能しますが、Webビューに移行している間、白い画面がわずかに表示されます。また、スプラッシュ画面のタイミングを制御することはできません。

  • 3番目の解決策は私が作りたいものですが、(数日間検索して試した後でも)方法がわかりません->あるスレッドでスプラッシュ画面を表示し、別のスレッドでWebビュー用にすべてを準備してから、単にWebビューに切り替えます。

私の質問は、この3番目のソリューションをどこから始めればよいか誰かに教えてもらえますか?

  • こんなものやってみたかった!しかし、Webビューを別のアクティビティに渡す方法がわかりませんでした。読んだ内容から、これは良い考えではありません。

何か提案、アイデア、指針はありますか?スプラッシュ画面を表示し、別のスレッドでWebビューを準備(膨張)し、URL(およびその他すべて)のロードが完了した後にそれに切り替える方法はありますか?

ありがとう!!!

4

1 に答える 1

1

Webview で WebChromeClient を使用してみてください。WebChromeClient には、onProgressChange メソッドがあります。

onProgressChange でページの読み込みが完了したことが通知されたら、スプラッシュ スクリーンを消すことができます。

編集: たとえば、HttpGet を使用して URL をスレッドで呼び出し、応答を取得できます。応答があれば、loadData(...) メソッドを使用して webview をロードできます。

于 2012-06-05T13:42:18.020 に答える