我有以下选择器,效果很好。
<?xml version="1.0" encoding="utf-8"?>
<selector android:exitFadeDuration="@android:integer/config_mediumAnimTime"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/the_color" />
<item android:drawable="@android:color/transparent" />
</selector>
注意,我可以将Color
用于drawable,如drawable-resouce.html
颜色资源也可以用作XML中的drawable。例如, 在创建状态列表drawable时,您可以引用颜色 android:drawable属性的资源 (机器人:抽拉= “@色/绿色”)。
非常好。现在,我想尝试主题。
<?xml version="1.0" encoding="utf-8"?>
<selector android:exitFadeDuration="@android:integer/config_mediumAnimTime"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="?attr/homeMenuTextViewPressedColor" />
<item android:drawable="@android:color/transparent" />
</selector>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="homeMenuTextViewPressedColor" format="color" />
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.X.Light.DarkActionBar" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="homeMenuTextViewPressedColor">@color/home_menu_text_view_pressed_color_inverse_holo_light</item>
</style>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="home_menu_text_view_pressed_color_inverse_holo_light">#ff4fc5f1</color>
</resources>
现在,我将收到错误: -
引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行 4:tag需要一个'drawable'属性或定义drawable
的子标签
知道如何解决这个问题吗?
答案 0 :(得分:0)
您正在尝试将属性转换为颜色,选择器需要颜色/可绘制。如果我理解你正在努力实现的目标,你可以完全摆脱它。
home_menu_text_view_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector android:exitFadeDuration="@android:integer/config_mediumAnimTime"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/home_menu_text_view_pressed_color_inverse_holo_light" />
<item android:drawable="@android:color/transparent" />
</selector>
colors.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="home_menu_text_view_pressed_color_inverse_holo_light">#ff4fc5f1</color>
</resources>
主题是你需要找出你想要的风格。例如:
的themes.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.X.Light.DarkActionBar" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
</style>
<style name="MyDropDownNav">
<item name="android:dropDownSelector">@drawable/home_menu_text_view_selector</item>
</style>
</resources>
希望这有帮助。
修改
别介意,我明白你现在要做的是什么。这里解决了类似的问题: