我的项目中有一个按钮,其工作方式如下:
对于每种状态,该按钮具有3种不同的设计-禁用(state_enabled="false"
),启用,按下。
如果未选择任何文件,则该按钮将保持禁用状态,并且具有特定的设计。尽管在选择文件时此按钮将变为启用状态并切换到其他设计。每次启用并按下按钮时,都可以看到按钮的突出显示颜色。
到目前为止我尝试过的:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/background_blue" android:state_enabled="true" />
<item android:drawable="@drawable/background_blue_white" android:state_enabled="false" />
<item android:drawable="@drawable/background_green" android:state_pressed="true" />
</selector>
我想拥有的是:
state_enabled="false"
和state_enabled="true"
可以正常工作,而state_pressed="true"
则根本不工作。您认为我做错了什么?
[请让我知道我的解释是否复杂-我会尽力描述问题以使其尽可能地易于理解。非常感谢。祝你今天愉快!
您应该为此设置按钮clickable
。
您可以使用button.setClickable(true)
进行创建(如果使用的是JAVA),也可以在.xml
中添加具有android:clickable="true"
的位置。
如果使用Kotlin,则添加button.clickable = true
,而不是第一个使用Java代码的解决方案。
更新:您也应该尝试此操作。遵循this answer可能会有所帮助。根据该答案,您应该使所有状态保持正确的顺序。我不知道为什么,但是我认为这应该有所帮助。
尝试一下,让我知道是否对您有帮助。谢谢,祝您编程愉快!!
也许您应该设置默认颜色。
<item android:drawable="@drawable/background_blue" android:state_enabled="true" />
<item android:drawable="@drawable/background_blue_white" android:state_enabled="false" />
<item android:drawable="@drawable/background_green" android:state_pressed="true" />
<item android:drawable="@drawable/background_blue" />
没有任何“按下”和“启用”可绘制对象的默认颜色。