android:state_pressed 不工作

Abd*_*mon 3 resources android android-selector

我有以下 XML 代码,res/drawable并将按钮设置background为 this drawable。但是,当我按下按钮时,它并没有改变color. 感谢帮助

<item android:state_enabled="false"
    android:drawable="@color/colorAccent">
</item>

<item android:state_enabled="true"
    android:drawable="@color/colorPrimary">
</item>

<item
    android:state_selected="false"
    android:state_pressed="true"
    android:drawable="@color/black">
</item>
Run Code Online (Sandbox Code Playgroud)

yot*_*das 5

好吧,您需要记住 android 一行一行地读取并返回第一个真实的语句。因为您在 state_Selected 之前启用了 false / true 项目,所以它将始终选择 enabled = false / true 项目。只需将您的底部代码移动到“state_enabled”之前,如下所示:

<item
    android:state_selected="false"
    android:state_pressed="true"
    android:drawable="@color/black">
</item>

<item android:state_enabled="false"
    android:drawable="@color/colorAccent">
</item>

<item android:state_enabled="true"
    android:drawable="@color/colorPrimary">
</item>
Run Code Online (Sandbox Code Playgroud)