Android/phonegap アプリケーションの起動時に白い画面のフラッシュを取り除くにはどうすればよいですか? activity_main.xml が一瞬表示されているように見えますが、目立たないように背景色を黒に変更してみました。それを完全に隠す方法があると思いますか?
3 に答える
問題は、WebView を最初にインスタンス化する必要があり、デフォルトで空白の白いページになり、次に loadUrl が呼び出されてアプリケーション コードが読み込まれることです。これを回避する 1 つの方法は、アプリがバックグラウンドで読み込まれるまでスプラッシュスクリーンを表示することです。
アプリのテーマに基づいて、このフラッシュ背景の色を変更できます (例: ライトまたはダーク)。これにより、影響が最小限に抑えられます。
私も同じ問題に遭遇しました。init と loadUrl の間にアクティビティ レイアウトの背景を設定することで、これを回避します。このようにして、プロセス全体をカバーしました。スプラッシュ スクリーンが表示される前、スプラッシュ スクリーンが表示され、スプラッシュ スクリーンが非表示になり、デバイスの準備ができたらスプラッシュ スクリーンを非表示にします。
super.onCreate(savedInstanceState);
super.init();
// set the layout background
root.setBackgroundDrawable(null);
root.setBackgroundResource(R.drawable.splash);
root.setBackgroundColor(Color.parseColor("#ffffffff"));
super.loadUrl(Config.getStartUrl(), 80000);
コードを減らすために、config.xml でスプラッシュ スクリーンを設定します。
<preference name="backgroundColor" value="0xffffffff" />
<preference name="splashscreen" value="splash" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="auto-hide-splash-screen" value="false" />
これは Cordova 2.8+ に基づいています。2.7 のスプラッシュ スクリーンはちょっとおかしいです。
さらに、iOS で白い画面の問題が発生した場合。ここの下部にある iOS の癖のセクションを参照してください: http://docs.phonegap.com/en/2.8.0/cordova_splashscreen_splashscreen.md.html#Splashscreen