2013-08-02 3 views
3

Я использую новую библиотеку поддержки ActionBarCompat.
Кнопки действий на панели действий должны менять фон при нажатии. Он работает с Android 4.3, но не с Gingerbread. В Gingerbread, если я нажму на кнопку, он не изменит фон. я даже изменил селектор:Библиотека поддержки ActionBarCompat android: selectableItemBackground не работает

<style name="Theme.MyCustomTheme" parent="@style/Theme.AppCompat.Light"> 
    <item name="selectableItemBackground">@drawable/actionbar_item_bg_selector</item> 
</style> 

И снова работает с Android 4.3, но не с Gingerbread. Это ошибка?

ответ

1

Я выяснил, в чем была проблема. Вы должны скопировать селектор android и изменить его.

styles.xml

<style name="Theme.NewTransaction" parent="@style/Theme.AppCompat.Light.DarkActionBar"> 
     <item name="selectableItemBackground">@drawable/actionbar_item_bg_selector</item> 
</style> 

actionbar_item_bg_selector.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_window_focused="false" android:drawable="@color/transparent" /> 

    <!-- 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_background_disabled" /> 
    <item android:state_focused="true" android:state_enabled="false"        android:drawable="@drawable/list_selector_background_disabled" /> 
    <item android:state_focused="true"        android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition" /> 
    <item android:state_focused="false"        android:state_pressed="true" android:drawable="@drawable/list_selector_background_transition" /> 
    <item android:state_focused="true"                android:drawable="@drawable/list_selector_background_focused" /> 
    <item android:drawable="@color/transparent" /> 

</selector> 

Я думаю, что моя проблема была связана с этим комментарием:
Даже если эти две точки на тот же ресурс , имеют два состояния, поэтому выталкиваемые будут лишены права при выходе из прессованного состояния.

Смежные вопросы