27

我可以更改 attr android:activatedBackgroundIndicator 的默认颜色(蓝色)吗?

我正在为 target 18 和 minimun 11 开发一个应用程序。

谢谢

4

2 回答 2

55

这是一种在您的主题上更改它的方法:

更新您的主题以在属性上应用您的自定义样式activatedBackgroundIndicator(这里的父主题是 Holo Light,但您当然可以更改它):

<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:activatedBackgroundIndicator">@drawable/list_activated_background</item>
    </style>

在“drawable”资源文件夹中,创建 XML 文件 list_activated_background 并定义新的背景指示器,例如:

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

然后只需确保您在清单文件中调用您的自定义主题,android:theme="@style/AppTheme"例如在这种情况下。

于 2013-09-27T03:09:46.690 回答
6

在 Lollipop 及更高版本上,您可以选择colorControlActivated在主题中进行设置:

<style name="AppTheme" parent="@android:style/Theme.Material">
    <item name="colorControlActivated">@color/your_color</item>
</style>

这种方法之所以有效,是因为 Material Theme 的activatedBackgroundIndicator选择器使用?attr/colorControlActivatedtheme_material.xmlactivate_background_material.xml中所示的激活状态。

请注意,Yoann Hercouet 的答案是正确的,并且仍然适用于 Lollipop。

于 2015-06-30T19:11:24.917 回答