ActionBar与AppCompat actionBarItemBackground无法正常工作

nro*_*fis 6 android styles android-appcompat android-actionbar

我试图在按下时更改项目的颜色.我actionBarItemBackground在动作栏样式中使用了该项,但没有任何反应..颜色没有改变......

这是我的代码:

<style name="ActionBarStyle" parent="@style/Widget.AppCompat.ActionBar.Solid">
    <item name="android:background">@color/actionbar_background</item>
    <item name="titleTextStyle">@style/ActionBarStyle.Title</item>
    <item name="actionBarItemBackground">@drawable/action_bar_item_selector</item>
    <item name="android:actionBarItemBackground" tools:ignore="NewApi">@drawable/action_bar_item_selector</item>
</style>
Run Code Online (Sandbox Code Playgroud)

而选择器:

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

    <item android:drawable="@drawable/pressed_item" android:state_focused="true"/>
    <item android:drawable="@drawable/pressed_item" android:state_pressed="true"/>
    <item android:drawable="@android:color/transparent"/>

</selector>
Run Code Online (Sandbox Code Playgroud)

和drawable:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <solid android:color="#FF0000"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

什么是狼?有人?

adn*_*eal 1

actionBarItemBackground不继承Widget.ActionBar. 您应该将其放在根主题中,无论您在何处应用,ActionBarStyle但不要放在ActionBarStyle. 所以,像这样:

<style name="Your.Theme" parent="@style/Theme.AppCompat">
    <item name="actionBarStyle">@style/ActionBarStyle</item>
    <item name="android:actionBarStyle">@style/ActionBarStyle</item>
    <item name="actionBarItemBackground">@drawable/action_bar_item_selector</item>
    <item name="android:actionBarItemBackground" tools:ignore="NewApi">@drawable/action_bar_item_selector</item>
</style>
Run Code Online (Sandbox Code Playgroud)