我可以更改attr android:activatedBackgroundIndicator的默认颜色(蓝色)吗?
我正在为目标18和最小化11开发一个应用程序。
谢谢
答案 0 :(得分:54)
这是一种在主题上更改它的方法:
更新主题以在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"
调用自定义主题,例如在这种情况下。
答案 1 :(得分:6)
在Lollipop及以上版本中,您可以选择在主题中设置<style name="AppTheme" parent="@android:style/Theme.Material">
<item name="colorControlActivated">@color/your_color</item>
</style>
:
activatedBackgroundIndicator
此方法有效,因为素材主题?attr/colorControlActivated
选择器使用{{1}}作为激活状态,如themes_material.xml和activated_background_material.xml中所示。
请注意,Yoann Hercouet的答案是正确的,并且仍在Lollipop中有效。