ViewHolder属性更改会影响Objects属性

时间:2018-08-15 08:23:23

标签: android kotlin android-viewholder

private fun turnOnAllItems() {
    items.forEachIndexed { index, item ->
        val viewHolder = recyclerView.findViewHolderForAdapterPosition(index)
                as SwitchableItemViewHolder
        viewHolder.switchButton.isChecked = false
    }
}

这是什么,还会将列表items对象值isEnabled更改为false。对我来说看起来很奇怪,因为我实际上更改了viewHolder属性。为什么会这样呢?如何避免这种情况?

1 个答案:

答案 0 :(得分:1)

我坚信您的做法是错误的。 RecyclerView用于显示已修改的数据,这意味着您拥有一组数据。

比方说,餐厅中有10张桌子,并且在某些时候,新客户可以使用第4张桌子,您需要指出这一点。

一种好的方法是在RCV之外的某个地方修改表列表,甚至碎片或活动也可以,然后通过RCV以图形方式更新(全部或仅一个)项目。

这里有一些article是为了说明如何正确使用c,希望对您有所帮助