Контроль нажатого состояния кнопки Android Up
Я пытаюсь контролировать, какого цвета будет нажатое состояние андроида вверх / назад + текст заголовка на панели действий.
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:homeAsUpIndicator">@drawable/up_button</item>
<item name="android:actionMenuTextAppearance">@style/H4.Other</item>
<item name="android:actionMenuTextColor">@color/h4_other</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/kf_white</item>
<item name="android:titleTextStyle">@style/H5.Blue</item>
</style>
Как видите, я определил по собственному индикатору up. Я пытался сделать это селектором, но он работает только с предоставленной мной иконкой, а не с комбинированной иконкой + текстом заголовка, для которого Android обеспечивает стандартный нажатый цвет. Причина, по которой я спрашиваю об этом, заключается в том, что на некоторых устройствах Samsung стандартный нажатый цвет имеет странный синий цвет, который не соответствует стилю моего приложения.
1 ответ
Вы можете попробовать добавить
<item name="android:actionBarItemBackground">@drawable/selector</item>
в вашем AppTheme. selector.xml будет что-то вроде
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:constantSize="false"
android:enterFadeDuration="0"
android:exitFadeDuration="0" >
<item
android:state_pressed="true"
android:drawable="@color/color1" />
<item
android:state_pressed="false"
android:drawable="@color/transparent" />
</selector>