I use databinding to set the tint of my ImageView
. And this is working well :
android:tint="@{plantEntity.isFavorite ? @color/favorite : @color/favorite_none}" />
The problem is android:tint
is deprecated. When I try to use app:tint
instead, I have this error :
Cannot find a setter for <android.widget.ImageView app:color> that accepts parameter type 'int' If a binding adapter provides the setter, check that the adapter is annotated correctly and that the parameter type matches.
Why and what I have to do ? Create a BindingAdapter
?
It's working and using androidx.appcompat.widget.AppCompatImageView
.
And app:tint
is no more deprecated.
similar to what has been discussed on Tint does not work <21 version in DataBinding
add a binding adapter:
@JvmStatic
@BindingAdapter("app:tint")
fun ImageView.setImageTint(@ColorInt color: Int) {
setColorFilter(color)
}
and you don't have to use any compat if your minSdk is > 21 (which is a good deal anyway in 2021 you should not support anything below 26)
anyhow .. this seems to be a fug on the androidx.databinding expression https://issuetracker.google.com/issues/152953070
Use androidx.appcompat.widget.AppCompatImageView
with android:tint
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With