gpt4 book ai didi

android - recyclerview 中的第一个可见项目会更改列表的其余部分

转载 作者:搜寻专家 更新时间:2023-11-01 08:20:53 25 4
gpt4 key购买 nike

我有头像上有圆圈前景的用户列表。如果用户在线,圆圈为绿色,否则为红色。问题是,整个列表都是红色的(例如),直到我滚动到本应为绿色的用户下方。

enter image description here

之后,当我向上滚动整个列表时,整个列表都有绿色圆圈,直到我到达离线用户,这会将整个列表变回红色。

enter image description here

我的绑定(bind)函数如下所示:

    fun bind(userInfo: UserInfo) {

val foreground = ContextCompat.getDrawable(itemView.context, R.drawable.ic_online)

foreground?.colorFilter = PorterDuffColorFilter(ContextCompat.getColor(
itemView.context, when {
userInfo.status == Status.OFFLINE -> R.color.offline_red
else -> R.color.colorAccent
}), PorterDuff.Mode.SRC_ATOP)

itemView.profilePictureImageView.foreground = foreground

val options = RequestOptions()
options.placeholder(R.drawable.ic_default_avatar)
options.circleCrop()

Glide.with(itemView.context)
.load("http://scdb.abradio.cz/uploads/interprets/r/radek-rettegy.jpg")
.apply(options)
.into(itemView.profilePictureImageView)
}

最佳答案

您需要调用mutate on the drawable otherwise you're changing the shared instance :

val foreground = ContextCompat.getDrawable(itemView.context, R.drawable.ic_online)
.mutate()

关于android - recyclerview 中的第一个可见项目会更改列表的其余部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51377872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com