我有一个函数可以删除包含1,2,3,4,5,6,7,8的两行RecyclerView
(在Kotlin中写入)。我希望保持1,4,5,6,7,8
fun remItemFromList() {
itemList.remove(1)
notifyItemRemoved(1)
itemList.remove(1)
notifyItemRemoved(1)
}
执行该功能后,将显示最后一项,即双8,如下面的GIF所示。为什么,以及如何解决这个问题?
答案 0 :(得分:0)
我设法使用DiffUtil实现我想要的功能。 https://medium.com/@elye.project/simultaneous-insertion-and-removal-of-recyclerview-with-animation-f9e1800a3dd0#.3evndq4is中有更详细的说明。
答案 1 :(得分:0)
您可以使用notifyItemRangeRemoved
:
https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter#notifyItemRangeRemoved(int,%20int)
答案 2 :(得分:0)
选中以下一项以获得帮助,它将删除第二名和第三名:
fun remItemFromList() {
itemList.remove(1)
notifyItemRemoved(1)
itemList.remove(1)
notifyItemRemoved(1)
notifyItemRangeChanged(1, arrData.size - 2)
}
答案 3 :(得分:0)
fun remItemFromList(positionFirst: Int, positionSecond: Int) {
itemList.remove(positionFirst)
itemList.remove(positionSecond)
notifyitemChanged()
}
答案 4 :(得分:-1)
要刷新多个项目,请调用notifydatasetchanged()方法。