1

如果我有一个名为 color_list_1 的颜色列表,如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:color="#FF0000"/>
    <item android:color="#00FF00"/>
</selector>

我希望能够创建另一个名为 color_list_2 的颜色列表:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#0000FF"/>
    <item android:color="@color/color_list_1"/>
</selector>

这允许我做的是有一个控件 Foo,它使用 color_list_1 作为颜色。现在我可能想创建一个名为 AmazingFoo 的子类,我想保持与 Foo 相同的外观,除了我还想给它添加一个按下的颜色。

我已经尝试过了,但似乎在使用 color_list_2 作为颜色时,color_list_1 中的状态被忽略了。这意味着按下状态有效(因为它直接在 color_list_2 中)但是当它回退到 color_list_1 时,焦点状态始终为 false,因此返回默认颜色。

我知道控件没有问题,因为使用 color_list_1 效果很好。只有当我将它级联到另一个颜色列表中时,所有状态才会返回 false。

4

0 回答 0