我有一个选择器类似的按钮
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/bg_circle_selected"/>
<item android:drawable="@drawable/bg_circle_disabled" />
</selector>
因此,当我单击按钮时,背景将显示红色圆圈。 我需要根据情况禁用此按钮,因此不应显示突出显示。
如果我将其设为setEnabled false,它将起作用 但是在另一种情况下,禁用按钮应该提供听觉反馈。
因此,当我将setEnabled设置为false时,其他要求将不起作用,因为触摸被禁用了。
除了setEnabled()之外,是否有其他方法可以禁用按钮?
答案 0 :(得分:0)
您可以通过自定义选择器实现上述目的,在该选择器中,该按钮似乎已被禁用,但实际上该按钮仍处于启用状态并触发了点击操作。 您可以使用
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:drawable="@drawable/bg_circle_disabled />
<item android:state_pressed="true" android:drawable="@drawable/bg_circle_disabled"/>
<item android:state_enabled="false" android:drawable="@drawable/bg_circle_disabled" />
也不要忘记跟踪按钮状态(启用/禁用)
答案 1 :(得分:0)
您可能要考虑通过Java文件(而不是XML)以编程方式设置按钮的属性。 给您的XML布局文件中的按钮一个ID,然后从Java文件中引用它。这样,您将可以更好地控制其行为。
例如,XML中的android:id="@+id/my_button"
。
然后使用Button button = findViewById(R.id.my_button);
方法中的onCreate
。
然后,为其提供所需的任何属性。