2

Android 2.1 以降で実行できる Android アプリを作成しています。は7minSdkVersionに設定され、は14に設定されます。ActionBar 機能を持たせるために、必要に応じて ActionBarSherlock ライブラリを使用し、アプリケーションのテーマを(など) の派生物に設定しています。targetSdkVersionTheme.Sherlock

ActionBar を提供する以外に、Honeycomb/ICS デバイスでアプリを実行すると、他のウィジェットとダイアログの一部が異なる (つまり、Holo) 外観になっていることに気付きました。ActionBar を使用したいが、Holo 以外の通常の Android テーマを維持したい - Holo のスタイルは、アプリの残りの部分にうまく適合しません。特に EditText ビューの外観は大きく異なります。

ActionBarSherlock は、 Theme.Holoから継承するvalues-11 (Honeycomb) とvalues-14 (ICS) でいくつかのカスタム テーマを定義していることがわかります。また、 values-14には、ABS スタイルをネイティブ スタイルにマップするカスタム スタイルもあります(ネイティブの ActionBar が ICS+ で使用されるため)。

少なくとも次のことを行う必要があることがわかりました。

  1. values-11values-14のカスタム テーマを無効にします。これにより、Holo ウィジェット/ダイアログが表示されなくなります。

  2. ICS+ の ActionBar のネイティブ実装の使用を無効にします。これにより、ICS のクラッシュが停止します。これは、Holo テーマの一部として提供されるネイティブ ActionBar に依存しているためです。これには、ライブラリの変更が必要です。

  3. values-14のカスタム スタイルを無効にします。これにより、互換性のある ActionBar の外観/スタイリングが台無しになります。

私が見逃した他の問題があるかどうかはわかりません。ライブラリを変更せずに、非 Holo Android テーマを ActionBarSherlock で使用する良い方法を見つけた人はいますか? ICS 以降で互換性のある ActionBar を使用する際に問題はありますか?

4

0 に答える 0