/**
* Provide a reference to the type of views that you are using
* (custom ViewHolder)
*/
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val textView: TextView
init {
// Define click listener for the ViewHolder's View
textView = view.findViewById(R.id.textView)
}
}
1条答案
按热度按时间hc2pp10m1#
您不应该在x1m0 n1 a中膨胀任何内容-
onCreateViewHolder
是您设置显示列表项的ViewHolder
对象的地方,包括膨胀其布局视图。onBindViewHolder
是您与这些视图交互的地方,以显示当前项的适当数据。那些创建的
ViewHolder
会被重用,所以你不必为每个条目膨胀视图,你只需创建一些ViewHolder
,当你滚动列表时,它们会被交换,这就是为什么它被称为RecyclerView
。一般来说,您可以在每个
ViewHolder
中存储对膨胀视图的引用,如下例所示:这样,传入
onBindViewHolder
的ViewHolder
就有了一个可以访问的textView
字段,例如,设置其文本内容以显示当前项的数据(如果使用视图绑定,则可以存储对绑定对象的引用,并通过holder.binding.textView
等访问视图)我不知道你在用嵌套的
RecyclerView
做什么,但原理是一样的--主RV中的每个ViewHolder
都将包含另一个RV,具有自己的适配器和数据集,在onCreateViewHolder
中创建并初始化。如果要更改其内容(因为您要在主RV列表中显示特定的项目)您可能希望在嵌套RV的适配器上添加setData
函数,以更改其数据集并刷新显示。在onCreateViewHolder
内部,让适配器在需要时处理充气的事情