android - 嵌套 RecyclerView:onBindViewHolder 被无限调用
问题描述
让我们把这变得非常简单。我有两个模型类,Category
并且Movie
.
data class Category(
val id: Long,
val name: String,
val movies: List<Movie>
)
data class Movie(
val name : String
)
每个类别都有多部电影。因此,为了呈现这些数据,我使用了嵌套RecyclerView
的 s。
- 问题
当我将设备切换到横向模式时,onBindViewHolder
(MoviesAdapter
嵌套的 recyclerview 的适配器)被无限调用。(注意,相同的代码在纵向模式下工作得很好)
- 我试过的
我已将layout_width
嵌套 recyclerview 的 item 更改为200dp
from 120dp
,这修复了设备中的无限调用,但在更大的屏幕上,我设置了更高的值来修复它。
我知道这不是一个理想的解决方案,所以我尝试了“wrap_content”,但它也不起作用。(同样的无限通话问题)
问题
- 为什么
onBindViewHolder
被无限调用? - 解决此问题的完美方法是什么?
- 为什么
因为我不想用代码淹没问题提要,所以我在这里托管了可重现的版本(为了便于阅读,代码最小化)
解决方案
正如@Pawel在评论中建议的那样,我已经通过将底部约束设置为 main 来解决这个问题。RecyclerView
推荐阅读
- javascript - 如何使用这个简单的 Plotly?
- ios - 无法访问字典中的值
- windows - 复制带有空格和大引号的文件
- kubernetes - 为什么有些 Kubernetes 的资源创建后是不可变的?
- python - SessionNotCreatedException:消息:会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 81 I
- c++ - 我应该在 main 函数中写什么来测试我的问题 t 次?
- sql - SQL - 最大 ID 的总和
- angular - CKEditor 5 不能在生产构建 Angular 6 中工作
- css - CSS min() 函数到 SASS
- algorithm - 给定一个 DP 问题,我如何证明它等价于其他一些 DP 问题?