RecyclerView的数据随机变化的问题
Posted
技术标签:
【中文标题】RecyclerView的数据随机变化的问题【英文标题】:The problem that the data of RecyclerView changes randomly 【发布时间】:2021-12-27 00:38:54 【问题描述】:(图 1 和图 2)
(图 3)
我目前使用的是Epoxy library
,而不是RecyclerView
。
但是,由于Epoxy
是在RecyclerView
的基础上构建的,所以我们就叫它RecyclerView
吧。
问题 1。 (图 1 和图 2)
当我在
RecyclerView item
的EditText
中输入值后返回另一个屏幕时,输入的数据会随机移动。
问题 2。 (图 3)
在添加足够的
items
可以滚动后,我还将值输入到EditText
中。 如果我向下滚动并返回,数据将移动到一个随机位置。
请告诉我是什么原因,什么是正确的解决方案。
【问题讨论】:
RecyclerView 回收视图。如果您没有在键入时将 EditText 的文本备份到模型项数据并将其恢复到onBindView
,那么您只会看到上次回收时视图中的先前文本。我不使用 Epoxy,但这个问题似乎解决了如何在 Epoxy 中执行此操作:github.com/airbnb/epoxy/issues/426
抱歉,我不确定 git 链接的内容与我的问题有什么关系
这正是您想要做的。将 EditText 更改反馈到模型中,以便它们在滚动离开并返回时保持不变。开发人员对如何做的解释看起来很复杂。我不使用环氧树脂。当您的 RecyclerView 中有交互式小部件时,它可能不是一个好工具。通过浏览 Epoxy 文档,如果您有多种视图类型和数据绑定,它看起来会有所帮助,但否则会使事情比 ListAdapter 复杂得多。它确实早于 ListAdapter。此外,现在还有 ConcatAdapter 可以轻松组合列表类型。
我的意思是,我不明白那个链接中的问题本身。这个问题的答案似乎与我想问的相似,但我不明白这个问题本身..
【参考方案1】:
确保您正确地覆盖了getItemViewType
、getItemId
和getItemCount
。
【讨论】:
以上是关于RecyclerView的数据随机变化的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何解决这个rec ylerview问题?我的代码中有任何错误吗?在应用程序中唱歌后运行时崩溃
当 RecyclerView 为空时,CollapsingToolbarLayout 不应折叠
如何使 RecyclerView 与 Composable ViewHolder 渲染更快?
为啥 RecyclerView 项目在 GridLayoutManager 中随机移动位置?