RecyclerView 在自定义视图中重用变量
RecyclerView reusing variables inside custom view
我正在创建要在 RecyclerView 中使用的自定义 ExpandableTextView。
class ExpandableTextView : AppCompatTextView, View.OnClickListener {
private var isCollapsed = true
...
自定义视图本身有效,但在 RecyclerView 中使用时,展开状态也会与 ViewHolder 一起回收。我怀疑 var isCollapsed
也被重用了。如何让 RecyclerView 正确显示 TextView 及其展开状态?我可以让我的变量不被重用吗?
请帮我找到一些解决办法。任何答案都会有很大帮助!
编辑:我添加了 a gif 进行说明。当我单击第一个 TextView 时,最后一个也会展开。抱歉,我还不能 post 图片!
您可以通过以下方式创建变量 isCollapsed
public,这样您就可以从外部更改它
class ExpandableTextView : AppCompatTextView, View.OnClickListener {
var isCollapsed = true
...
你的适配器
override fun onBindViewHolder(viewHolder :YourViewHolder, position:Int) {
viewHolder.expandleTextView.isCollapsed = true
// Rest of your code
}
我正在创建要在 RecyclerView 中使用的自定义 ExpandableTextView。
class ExpandableTextView : AppCompatTextView, View.OnClickListener {
private var isCollapsed = true
...
自定义视图本身有效,但在 RecyclerView 中使用时,展开状态也会与 ViewHolder 一起回收。我怀疑 var isCollapsed
也被重用了。如何让 RecyclerView 正确显示 TextView 及其展开状态?我可以让我的变量不被重用吗?
请帮我找到一些解决办法。任何答案都会有很大帮助!
编辑:我添加了 a gif 进行说明。当我单击第一个 TextView 时,最后一个也会展开。抱歉,我还不能 post 图片!
您可以通过以下方式创建变量 isCollapsed
public,这样您就可以从外部更改它
class ExpandableTextView : AppCompatTextView, View.OnClickListener {
var isCollapsed = true
...
你的适配器
override fun onBindViewHolder(viewHolder :YourViewHolder, position:Int) {
viewHolder.expandleTextView.isCollapsed = true
// Rest of your code
}