gpt4 book ai didi

java - 有没有办法在不重新绑定(bind)的情况下更新 RecyclerView 中的某些项目?

转载 作者:搜寻专家 更新时间:2023-11-01 09:43:24 24 4
gpt4 key购买 nike

假设我在 RecyclerView 中有 40 个项目。其中的 20 个项目都具有相同的 Intent ,每个项目都会在触摸时启动。每隔 5 秒,intent 就会发生变化,因此 40 项中的 20 项的 intent 将被替换

有没有一种方法可以在不重新绑定(bind)它们的情况下更新 20 个项目中每个项目的所有 Intent ?

每次重新绑定(bind)时,项目都会消失和出现,并且以 5 秒的时间间隔让项目不断出现和消失在视觉上并不令人愉悦。

我在想变量应该都指向一个对象,这样当该对象更新时,项目的 Intent 也会更新。但是 Java 是按值传递的,所以没有机会。

有什么想法吗?

最佳答案

如果视觉效果没有改变,就没有理由重新绑定(bind)。只需将数据提供给需要更新的项目,不要在适配器上调用 RecyclerView.Adapter#notifyItemChanged()RecyclerView 不会收到重新绑定(bind)的通知,底层数据也会更新。

如果视觉效果确实发生了变化,但您不想要闪烁,那么您可以使用一个自定义的ItemAnimator,它根本就没有动画。

一个更简单的方法可能是简单地调用 ItemAnimator#setChangeDuration()您正在使用的 ItemAnimator 的值为 0,因此它会立即开始和结束。

关于java - 有没有办法在不重新绑定(bind)的情况下更新 RecyclerView 中的某些项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38879480/

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