Android 2.1 以降で実行できる Android アプリを作成しています。は7minSdkVersion
に設定され、は14に設定されます。ActionBar 機能を持たせるために、必要に応じて ActionBarSherlock ライブラリを使用し、アプリケーションのテーマを(など) の派生物に設定しています。targetSdkVersion
Theme.Sherlock
ActionBar を提供する以外に、Honeycomb/ICS デバイスでアプリを実行すると、他のウィジェットとダイアログの一部が異なる (つまり、Holo) 外観になっていることに気付きました。ActionBar を使用したいが、Holo 以外の通常の Android テーマを維持したい - Holo のスタイルは、アプリの残りの部分にうまく適合しません。特に EditText ビューの外観は大きく異なります。
ActionBarSherlock は、 Theme.Holoから継承するvalues-11 (Honeycomb) とvalues-14 (ICS) でいくつかのカスタム テーマを定義していることがわかります。また、 values-14には、ABS スタイルをネイティブ スタイルにマップするカスタム スタイルもあります(ネイティブの ActionBar が ICS+ で使用されるため)。
少なくとも次のことを行う必要があることがわかりました。
values-11とvalues-14のカスタム テーマを無効にします。これにより、Holo ウィジェット/ダイアログが表示されなくなります。
ICS+ の ActionBar のネイティブ実装の使用を無効にします。これにより、ICS のクラッシュが停止します。これは、Holo テーマの一部として提供されるネイティブ ActionBar に依存しているためです。これには、ライブラリの変更が必要です。
values-14のカスタム スタイルを無効にします。これにより、互換性のある ActionBar の外観/スタイリングが台無しになります。
私が見逃した他の問題があるかどうかはわかりません。ライブラリを変更せずに、非 Holo Android テーマを ActionBarSherlock で使用する良い方法を見つけた人はいますか? ICS 以降で互換性のある ActionBar を使用する際に問題はありますか?