我目前正在尝试在一些ImageButtons上实现着色,这些ImageButtons当前具有纯白色的Drawable。着色颜色应该由StateList提供,并且应根据按钮当前状态而改变。StateList看起来像:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#FF0000"/>
<item android:color="#00FF00" android:state_enabled="false"/>
<item android:color="#0000FF" android:state_pressed="true" android:state_enabled="true"/>
</selector>
而按钮的布局XML片段如下:
<ImageButton
android:id="@+id/btnNext"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/vertical_content_padding"
android:layout_marginEnd="@dimen/horizontal_content_padding"
android:contentDescription="@string/next"
android:src="@drawable/ic_chevron_right_white_24dp"
android:tint="@color/state_btn_tint_light"/>
默认的颜色状态列表中的着色被选择并正确显示。但是禁用按钮或按下它并不会触发图标的任何颜色更改。我也尝试使用setImageTintList来以编程方式设置它。