android - (android) 应该只在第一次调用 setAdapter() 吗?
问题描述
这不是代码问题。
正如我在某些网站上看到的,RecyclerView 的 setAdapter 第一次应该只运行一次。
是什么原因?
如果是这样,在嵌套的 RecyclerView 中,这个视频的人一直在调用
Sub RecyclerView 每次回收时的 setAdapter()
onBindViewHolder(),是不是错了??
解决方案
不,我认为他是对的。让我们看看视频中提出的逻辑。你有物品parent
清单。child
据我所知,这是普通情况。但是列表中的每个项目都是child
其列表的项目,该列表存储在列表的项目中。因此,当您在列表的容器内调用时,您会向其发送数据 以及它们的内容,为什么每次都被调用?这很简单,让我们看看文档:parent
parent
child
parent
setAdapter()
parent
children
children
onBindViewHolder()
setAdapter
RecyclerView 调用此方法将 ViewHolder 与数据相关联。该方法获取适当的数据并使用数据填充视图持有者的布局。例如,如果 RecyclerView 显示名称列表,则该方法可能会在列表中找到适当的名称并填写视图持有者的 TextView 小部件。
因此,当您为第一级 RV 发送数据时,您会将子 RV 与您在列表setAdapter
的每个项目中调用的某些数据相关联parent
。因此,它将在parent
列表项的每个位置调用,以将数据分配给child
列表,该列表也将有一些数据持有者进行处理。让我们看看生活示例:
grandfather (activity) bought some candies for his children (first level list items) who will give some of them to their children (second level lists which are items of first level list items)
为了在亲戚之间传递一些糖果,我们使用setAdapter()
方法:) 我希望我解释了你的问题,你会理解这个视频:D
推荐阅读
- reactjs - 如何使用打字稿将类型组合成一种类型并做出反应?
- yahoo - 通过 Roundcube 请求 Yahoo OAuth 范围的问题
- java - 将 IKVM 与 Tomcat 和 intellej 一起使用
- django - 如何更改表 django 中的数据?
- node.js - Nodejs fast-csv 和 Promise
- active-directory - 如何在 Azure AD 预配调用中映射属于用户的组
- c - GCC - 编译 C 未定义的对“wWinMain”的引用
- sql - 如何为每个用户及其详细信息选择最高分
- react-admin - 在一个下显示多个资源
- vim - 如何在 VIM 中重复复制粘贴?