ActionBar与AppCompat actionBarItemBackground不起作用

7

我希望在点击某个项目时能够改变其颜色。我在操作栏样式中使用了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>

选择器:

<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>

还有可绘制对象:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <solid android:color="#FF0000"/>
</shape>

什么有问题吗?有人出了问题吗?
1个回答

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>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接