位置不起作用取决于 RecyclerView (Kotlin) 中的 getItemCount

问题描述 投票:0回答:1

覆盖 fun getItemCount(): Int { 返回ekipListesi.size }

覆盖 fun onBindViewHolder(holder: KisilerVH,position: Int) { holder.binding.kisiAdiTextView.text = ekipListesi[位置] println(项目计数) println(位置) }

ItemCount 正如我所希望的那样分别返回 5 和 6,但它为每个称为非 5 或 6 的卡片创建一张卡片。 所以这个位置不会改变 0,1,2,3,4 和 0,1,2,3,4,5

位置在两种情况下1次只返回0。我不明白为什么会出现这个问题

我想使用创建嵌套回收器视图。家长工作正常。然而,childRV 中的“位置”不起作用。

kotlin android-recyclerview position android-adapter
1个回答
0
投票
class ParentAdapter(private val parentList: List<ParentItem>) : RecyclerView.Adapter<ParentAdapter.ParentViewHolder>() {
    // ...

    override fun getItemCount(): Int {
        return parentList.size
    }

    override fun onBindViewHolder(holder: ParentViewHolder, position: Int) {
        val parentItem = parentList[position]
        
        // parent item views

        // child RecyclerView
        val childAdapter = ChildAdapter(parentItem.childItemList)
        holder.childRecyclerView.adapter = childAdapter
    }
}

class ChildAdapter(private val childList: List<ChildItem>) : RecyclerView.Adapter<ChildAdapter.ChildViewHolder>() {
    // ...

    override fun getItemCount(): Int {
        return childList.size
    }

    override fun onBindViewHolder(holder: ChildViewHolder, position: Int) {
        val childItem = childList[position]
        
        // child item views
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.