禁用带图标的按钮

Dus*_*san 1 android android-button

我有一个简单的Button,它有一个drawable set作为图标:

<Button
     android:id="@+id/bOk"
     android:drawableStart="@drawable/icon_ok"
     android:text="@string/ok"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

当我在XML布局文件中禁用该按钮时: android:enabled="false"

或programmaticaly: bOk.setEnabled(false);

该按钮被禁用,它显示为"灰显",但图标保持为启用状态.

在此输入图像描述

我怎么看一看,图标也是"灰显"的?

Fir*_*mon 6

创建一个新的灰色图标并在以下内容中添加selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/icon_ok" android:state_enabled="true" />
    <item android:drawable="@drawable/icon_ok_disabled" android:state_enabled="false" />

</selector>
Run Code Online (Sandbox Code Playgroud)

使用内部按钮如: android:drawableStart="@drawable/selector"


对于TextColor,

内创建另一个选择res/color/mycustomtextcolor.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="#666" android:state_enabled="false" /> 
  <item android:color="#000" android:state_enabled="true"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

在您的小部件调用内使用: android:textColor="@color/mycustomtextcolor"

要么

你里面style添加使用另一个项目:<item name="android:textColor">@color/mycustomtextcolor</item>