2

私がやりたいこと: アプリケーションが起動されている間、アプリケーションの ActionBar (およびタイトル バー) を 1 秒か 2 秒で非表示にします。

Ouya Android デバイスでは、オーバースキャンの問題を最小限に抑えるために ActionBar テーマがカスタマイズされています。(Google TV とは異なり、ouya デバイスにはオーバースキャン キャリブレーション手順がないため、Ouya の開発者は、ストックの ActionBar 互換テーマの要素の周りに大量のパディングを追加しました)。これは、ダーク ホロやダイアログ テーマでうまく機能します。残念ながら、デフォルトのライト ホロ テーマのアクション バーは、Ouya デバイスではひどく見えます。

これは、既存の Android アプリを Ouya に移植しているため、Launch アニメーションに大きな問題を引き起こしています。

Ouya のゲーム コントローラーに対応するためにかなりのカスタマイズを行う必要があるため、Ouya で実行していることを検出したときにアクション バーを使用しないと考えました。そこで、getActionBar().hide() を呼び出し、Ouya デバイス専用の追加機能を備えた Ouya 固有のレイアウトを読み込みます。

問題: アプリの起動中、Android はアプリの読み込み中に空のアクション バー (アプリ アイコンとアプリのタイトルのみ) を表示し、マニフェスト ファイルから読み取ったアクティビティの既定のテーマを使用して表示します。遅延はかなり大きく、約 2 秒程度なので、アプリケーション アイコンのフラッシュと破損した ActionBar がはっきりとわかります。このすべては、コードの最初の行がアプリで実行される前に行われます。メイン アクティビティのコンストラクターにブレークポイントを設定すると、壊れたタイトル画面が 2 秒間表示されてから、ブレークポイントに到達します。

追加する

<item name="android:windowNoActionBar">true</item>

効果はないようです。Android がダミーのアクション バーの代わりにタイトルバーを表示している可能性があります。追加

    <item name="android:windowNoTitle">true</item>

アプリケーション テーマに追加すると、ダミーのアクション バーが非表示になりますが、ActionBarCompat ライブラリ コードで長く苦痛な一連のクラッシュが発生します。

その後 ActionBarCompat コードを壊すことなく、起動中に表示されるものを制御するためのきれいな方法はありますか?

    <item name="android:windowDisablePreview">true</item>

起動が 2 秒遅れるだけなので、少し気がかりですが、それを実行する 1 つの方法のようです。:-/

補足要件: Ouya と通常の Android デバイスの両方に 1 つのバイナリが本当に必要なので、マニフェストとスタイルの変更は、すべてのプラットフォームで適切に機能しない場合は望ましくありません。

4

0 に答える 0