RecyclerView重用自定义视图中的变量

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

我正在创建自定义的ExpandableTextView,以在RecyclerView中使用。

class ExpandableTextView : AppCompatTextView, View.OnClickListener {

    private var isCollapsed = true
    ...

自定义视图本身可以工作,但是在RecyclerView中使用时,扩展状态也会通过ViewHolder进行回收。我怀疑var isCollapsed也被重用了。如何使RecyclerView正确显示TextView及其展开状态?我可以使变量不被重用吗?

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

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

android android-recyclerview android-custom-view
1个回答
0
投票

您可以在此处将变量isCollapsed设为公开,因此可以从外部进行更改

class ExpandableTextView : AppCompatTextView, View.OnClickListener {

    var isCollapsed = true
    ...

您的适配器

override fun onBindViewHolder(viewHolder :YourViewHolder, position:Int) {
    viewHolder.expandleTextView.isCollapsed = true
// Rest of your code
}
© www.soinside.com 2019 - 2024. All rights reserved.