是否可以创建状态列表选择器的xml子类?

时间:2012-12-08 01:00:48

标签: android

例如,假设我有一个用XML声明的颜色状态列表,名为 example1.xml

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

    <item
        android:color="@color/blue"
        android:state_checked="true" />

    <item
        android:color="@color/green"
        android:state_disabled="true" />

    <item
        android:color="@color/orange" />
</selector>

然后,我想创建 example2.xml ,我希望它与 example1.xml 完全相同,除了我希望压缩的颜色是紫色而不是红色:

    <item
        android:color="@color/purple"
        android:state_pressed="true" />

所以 example2.xml 最终会像这样:

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item
            android:color="@color/purple" <-- note this value is different
            android:state_pressed="true" />

        <item
            android:color="@color/blue"
            android:state_checked="true" />

        <item
            android:color="@color/green"
            android:state_disabled="true" />

        <item
            android:color="@color/orange" />
    </selector>

但没有所有重复的代码。此外,如果我想更改颜色,我可以在一个地方更改它。

这可能吗?

1 个答案:

答案 0 :(得分:0)

我不认为你可以在Android上这样做,你必须为不同的选择器创建多个xml资源。