Я хочу изменить оттенок фона ViewGroup
в моем RecyclerView
ViewHolder
, но он продолжает выдавать NullPointerException
.
Эта пользовательская функция работает как для ImageView
, так и для других Views
, но по какой-то причине она не работает для ViewGroup
.
private inner class TimeViewHolder(val root: ViewGroup): RecyclerView.ViewHolder(root){
val minutesTv = root.findText(R.id.minutes)
val hoursTv = root.findText(R.id.hours)
fun bind(m: Order.Timeline, onClick: ()->Unit) {
val a = mainActivity?:return
with(m) {
minutesTv.text = "%02d".format(minute)
if (m.isClosest){
root.setBackgroundTint(R.color.highlight)
} else {
root.setBackgroundTint(R.color.white)
}
}
}
}
fun View.setBackgroundTint(color: Int){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){
this.background.colorFilter = BlendModeColorFilter(ContextCompat.getColor(this.context, color), BlendMode.SRC_IN)
} else {
this.background.setColorFilter(ContextCompat.getColor(this.context, color), PorterDuff.Mode.SRC_IN)
}
}
Исключение:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setColorFilter(int, android.graphics.PorterDuff$Mode)' on a null object reference