ImageButton tint selector is not changing color based on state

167 Views Asked by At

I want to change ImageButton icon color tint based on Button state. Its working with background for generic Button, but for ImageButton icon, its not working at all. Its still in "enabled" state even if I disable it.

<style name="newbutton.iconified">
    <item name="android:layout_width">@dimen/button_height</item>
    <item name="android:layout_height">@dimen/button_height</item>
    <item name="android:minHeight">0dp</item>
    <item name="android:minWidth">0dp</item>
    <item name="android:paddingStart">@dimen/small_padding_start</item>
    <item name="android:paddingEnd">@dimen/small_padding_end</item>
    <item name="android:paddingTop">@dimen/small_padding_top</item>
    <item name="android:paddingBottom">@dimen/small_padding_bottom</item>
    <item name="android:background">@null</item>
    <item name="android:tint">@color/buttons_button_iconified</item>
</style>

buttons_button_iconified.xml

<selector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:exitFadeDuration="200"
    android:enterFadeDuration="200">
    <item
        android:state_enabled="false"
        android:alpha="0.4"
        android:color="@color/button_primary"
        />
    <item
        android:state_pressed="true"
        android:alpha="0.4"
        android:color="@color/button_primary"
        />
    <item
        android:alpha="1"
        android:color="@color/button_primary"/>
</selector>
0

There are 0 best solutions below