首页 > 解决方案 > RecyclerView 在自定义视图中重用变量

问题描述

我正在创建一个自定义 ExpandableTextView 以在 RecyclerView 中使用。

class ExpandableTextView : AppCompatTextView, View.OnClickListener {

    private var isCollapsed = true
    ...

自定义视图本身可以工作,但在 RecyclerView 中使用时,展开状态也与 ViewHolder 一起回收。我怀疑 varisCollapsed也被重用了。如何让 RecyclerView 正确显示 TextView 及其展开状态?我可以让我的变量不被重用吗?

请帮我找到一些解决方案。任何答案都会有很大帮助!

编辑:我添加了一个 gif来澄清。当我单击第一个 TextView 时,最后一个也会展开。抱歉,我还不能发布图片!

标签: androidandroid-recyclerviewandroid-custom-view

解决方案


这是您可以做的isCollapsed公开变量的操作,以便您可以从外部更改它

class ExpandableTextView : AppCompatTextView, View.OnClickListener {

    var isCollapsed = true
    ...

你的适配器

override fun onBindViewHolder(viewHolder :YourViewHolder, position:Int) {
    viewHolder.expandleTextView.isCollapsed = true
// Rest of your code
}

推荐阅读