我需要更改我的MaterialButton的图标色调,该图标是xml矢量资产,我可以在xml布局中轻松更改色调,但是我需要通过单击以编程方式更改颜色,我不能能够找到与此问题相关的内容,这是我的按钮:
<com.google.android.material.button.MaterialButton
android:id="@+id/btnShowDepartmentList"
style="@style/com.madison.Button.IconButton"
app:iconSize="32dp"
android:padding="0dp"
android:paddingLeft="5dp"
android:paddingStart="5dp"
app:icon="@drawable/ic_list_thumbnails"
android:layout_width="42dp"
android:layout_height="42dp"
app:iconTint="@color/orangeLighter"
tools:ignore="RtlSymmetry"/> ```
答案 0 :(得分:1)
您将要使用MaterialButton的setIconTint(ColorStateList)
或setIconTint(Int)
方法。例如:
val button = findViewById<MaterialButton>(R.id.btnShowDepartmentList)
button.setOnClickListener {
button.setIconTint(R.color.orangeLighter)
}
答案 1 :(得分:1)
您需要以编程方式将ColorStateList传递给iconTint。
btnShowDepartmentList.iconTint = ContextCompat.getColorStateList(activity, R.color.orangeLighter)
答案 2 :(得分:0)
这对我有用:
btnShowDepartmentThumbnails.setOnClickListener {
btnShowDepartmentThumbnails.setIconTintResource(R.color.orangeLighter)
}
我的错误尝试通过以下方式设置图标色调:
btnShowDepartmentThumbnails.setOnClickListener {
it.setIconTintResource(R.color.orangeLighter)
}