更改ActionBar按下的元素叠加

时间:2014-10-13 19:44:59

标签: android android-actionbar android-appcompat

当我按下它们时,我无法找到更改ActionBar项目上的叠加颜色的方法。我有minsdk = 11,我不能使用

<item name="android:actionBarItemBackground">@drawable/selectable_background_</item>

因为它仅适用于API 14。

我创建了一个带有style.xml文件的values-v14文件夹,而对于设备&gt; = v.14则以这种方式工作:

没有按下: not pressed 按: enter image description here

但是,如何对版本&gt; = 11执行相同的操作? 14?

这是我的style.xml文件:

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


<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">


</style>

<!-- ActionBar styles -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/brand_color</item>
</style>


<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">


    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

</resources>

在这个文件中,我很容易改变了ActionBar的背景颜色,但我无法弄清楚如何更改按下的项目上的叠加颜色。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

以下是更改按下项目颜色的方法。将两个actionButtonStyle项添加到您的样式中,它应该适用于所有版本(使用app compat)。只需将@drawable/selector替换为您自己的drawable for action按钮。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:selectableItemBackground">@drawable/selector</item>
    <item name="selectableItemBackground">@drawable/selector</item>
</style>

示例@drawable/selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="#ddffffff" />
    <item
        android:drawable="@android:color/transparent" />
</selector>