我有一个RecyclerView
,我想允许用户使用长按选择视图。这种方法很好,只要我调用notifyItemChanged()
或notifyDataSetChanged
以指示选择就会终止涟漪效应。我怎样才能防止这种情况发生?
请注意,之前已经问过这个问题(Example 1,Example 2)。这些问题的答案是使用notifyItemChanged
代替notifyDataSetChanged
。我已尝试过这两种方法,并没有改变我的行为。
答案 0 :(得分:0)
有两种版本的notifyItemChanged()方法。一个仅占据位置,另一个占据位置和有效载荷。
就我而言,第一个打破了连锁反应,而第二个起作用了。至少当我传递刚刚更改为有效负载的对象时。
答案 1 :(得分:0)
a) 将 DiffUtilCallback 添加到您的适配器
b) 确保您的 areItemsTheSame
方法按 id 而不是按内容比较项目。
因为如果按内容比较,它认为你删除了之前的单元格并插入了新的单元格,从而消除了涟漪效应。