【发布时间】:2018-12-29 01:00:30
【问题描述】:
我发现了很多关于如何为自定义布尔属性制作选择器的帖子(例如How to add a custom button state)。但我找不到如何为枚举或整数制作选择器。有可能吗?
例如,我有自定义枚举属性
<declare-styleable name="status_indicator">
<attr name="status" format="enum">
<enum name="value_offline" value="0"/>
<enum name="value_away" value="1"/>
<enum name="value_online" value="2"/>
</attr>
</declare-styleable>
我想用一个像这样的选择器的背景
<selector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:drawable="@drawable/status_offline" app:status="value_offline"/>
<item android:drawable="@drawable/status_away" app:status="value_away"/>
<item android:drawable="@drawable/status_online" app:status="value_online"/>
<item>
<shape android:shape="oval">
<solid android:color="#ff00ff"/>
</shape>
</item>
</selector>
这段代码可以编译,但选择器总是应用第一项,就像它没有条件一样。我已经阅读了资料,发现项目匹配是通过比较属性集进行的。我假设android框架无法使用枚举或整数为条件构建有效的属性集?
【问题讨论】:
标签: android view android-custom-view