0

例如,假设我有一个在 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>

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

这可能吗?

4

1 回答 1

0

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

于 2012-12-08T01:39:51.560 回答