に設定action bar
した後NAVIGATION_MODE_LIST
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
アダプターをセットします。
リストは期待どおりに表示されますが、デフォルトの色が背景色に非常に近いため、リストの「小さな三角形」の色を変更する必要があります。
これを行うことは可能ですか、可能であればどうすればよいですか?
に設定action bar
した後NAVIGATION_MODE_LIST
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
アダプターをセットします。
リストは期待どおりに表示されますが、デフォルトの色が背景色に非常に近いため、リストの「小さな三角形」の色を変更する必要があります。
これを行うことは可能ですか、可能であればどうすればよいですか?
変更したい小さな三角形は、 のSpinner
ウィジェットの背景にありますActionBar
。背景は状態リスト drawableです。ステート リスト ドローアブルのアイテムは、次のような 9 パッチ ドローアブルです (この特定のドローアブルは、Holo ライト テーマのデフォルト ステートの hdpi バージョンです)。
三角形の色を変更するには、これらの 9 パッチのドローアブルのいくつかのセットを変更する必要があります。各 dpi と状態の組み合わせごとに 1 つのドローアブルです。Spinner
また、ウィジェットの背景と同じように、カスタムのステート リスト ドローアブルも必要です。
ウィジェットの背景を変更するには、テーマを調整する必要があります。ActionBarSherlock (ABS) 変更アイテムを使用している場合actionDropDownStyle
、およびネイティブ ActionBar 変更android:actionDropDownStyle
アイテムの場合 (ABS を使用している場合でも、Android 4.0 以降を実行しているデバイスではネイティブ ActionBar が使用されます)。
テーマは次のようになります。
<style name="MyTheme" parent="SomeParentStyle>
<item name="actionDropDownStyle">@style/MyActionBarSpinnerStyle</item><!-- if you use ABS -->
<item name="android:actionDropDownStyle">@style/MyActionBarSpinnerStyle</item>
</style>
次MyActionBarSpinnerStyle
のようになります。
<style name="MyActionBarSpinnerStyle" parent="@style/MyDropDownActionBarStyle">
<item name="android:background">@drawable/my_custom_state_list_drawable</item>
</style>
ABS を使用する場合、またはネイティブの ActionBar のみをターゲットにする場合の代わりに、MyDropDownActionBarStyle
何かがあるはずです。Widget.Sherlock.Light.Spinner.DropDown.ActionBar
Widget.Holo.Light.Spinner.DropDown.ActionBar