5

に設定action barした後NAVIGATION_MODE_LIST

getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

アダプターをセットします。

リストは期待どおりに表示されますが、デフォルトの色が背景色に非常に近いため、リストの「小さな三角形」の色を変更する必要があります。

これを行うことは可能ですか、可能であればどうすればよいですか?

4

1 に答える 1

12

変更したい小さな三角形は、 の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.ActionBarWidget.Holo.Light.Spinner.DropDown.ActionBar

于 2012-10-13T11:44:18.223 に答える