首页 > 解决方案 > 在不使用 setEnabled 属性的情况下禁用按钮

问题描述

我有一个按钮,选择器就像

<?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()还有什么方法可以禁用按钮吗?

标签: androidandroid-layout

解决方案


您可能需要考虑从 java 文件而不是 XML 以编程方式设置按钮的属性。从您的 XML 布局文件中给按钮一个 id,然后从 java 文件中引用它。这样,您将可以更好地控制它的行为方式。

例如,android:id="@+id/my_button"在 XML 中。然后Button button = findViewById(R.id.my_button);onCreate方法中。

之后,给它你想要的任何属性。


推荐阅读