Как я могу изменить цвет сенсорного эффекта ActionBar в Android 3.0 и выше
Я пытаюсь изменить цвет эффекта прокрутки, когда вы касаетесь элемента ActionBar. На моем Galaxy Nexus с 4.0.2 это своего рода бирюзовый оттенок, который я хочу сделать другого цвета.
Чтобы было ясно, я говорю об элементах ActionBar здесь, а не о вкладках навигации.
У меня это работает в библиотеке совместимости, но для Android 3.0 и выше, то есть для "настоящего" ActionBar, я просто не могу понять, как это сделать.
Кто-нибудь знает, можно ли и как этого добиться?
1 ответ
Решение
Родная панель действий использует атрибут темы selectableItemBackground
для фонового рисунка элемента действия. Это должен быть нарисован список состояний.
Вот декларация в Theme.Holo
:
<style name="Theme.Holo">
<!-- bunch of things -->
<item name="android:selectableItemBackground">@android:drawable/item_background_holo_dark</item>
<!-- bunch of things -->
</style>
И его рисуемый XML:
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<!-- Even though these two point to the same resource, have two states so the drawable will invalidate itself when coming out of pressed state. -->
<item android:state_focused="true" android:state_enabled="false" android:state_pressed="true" android:drawable="@drawable/list_selector_disabled_holo_dark" />
<item android:state_focused="true" android:state_enabled="false" android:drawable="@drawable/list_selector_disabled_holo_dark" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_dark" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition_holo_dark" />
<item android:state_focused="true" android:drawable="@drawable/list_focused_holo" />
<item android:drawable="@color/transparent" />
</selector>