繁体   English   中英

选中时更改动作背景颜色(ActionBarSherlock)

[英]Change action background color when selected (ActionBarSherlock)

我想在按下操作背景图标时更改其颜色。

我尝试了以下操作,但没有结果:

styles.xml

<style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <!-- <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item> -->
</style>

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="actionBarItemBackground">@drawable/action_item_background</item>
    <item name="selectableItemBackground">@drawable/action_item_background</item>
</style> 

action_item_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <solid android:color="#FF0000"/>

</shape>

我该如何实现?

我发现的解决方案是:

action_item_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <solid android:color="#FF0000"/>

</shape>

action_item_background_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
        android:exitFadeDuration="@android:integer/config_shortAnimTime" >

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

</selector>

styles.xml

 <style name="Theme.Styled" parent="Theme.Sherlock.Light.DarkActionBar">
            <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
            <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
            <item name="actionBarItemBackground">@drawable/action_item_background_selector</item>
            <item name="android:actionBarItemBackground">@drawable/action_item_background_selector</item>
        </style>

        <style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
        //...
    </style>

您必须使用选择器slector_action_item_background:

    <selector xmlns:android="http://schemas.android.com/apk/res/android"
        android:exitFadeDuration="@android:integer/config_shortAnimTime" >

    <item android:state_pressed="true" android:drawable="@drawable/action_item_background" />
    <item android:drawable="@android:color/transparent" />
</selector>

然后以您的风格替换它

<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="actionBarItemBackground">@drawable/selector_action_item_background</item>
</style> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM