为什么当您在回收器视图中删除项目时动画会变得混乱

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

我在回收商视图中列出了位置列表。当我按下删除图标按钮时,该按钮的项目应该被删除。

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
            holder.locationTitleTextView.text = locationList[position].name
            holder.coordinatesTextView.text = locationList[position].coordinateText
            holder.deleteLocationButton.setOnClickListener {
                locationList.removeAt(position)
                notifyItemRemoved(position)
                notifyItemRangeChanged(position, locationList.size)
            }
        }

现在代码确实可以工作来删除项目,但是调用

notifyItemRemoved(position)
notifyItemRangeChanged(position, locationList.size)
后生成的动画并不符合预期。

我不知道如何描述我观察到的动画,但它是这样的。 当我删除不是最后一项的任何项目时,最后一项将变得不可见,然后整个项目列表会在秒内更新。

还有其他实现让移除动画平滑而不崎岖吗?

android kotlin android-recyclerview
1个回答
0
投票

基于这个问题我建议尝试这个改变:

 holder.deleteLocationButton.setOnClickListener {
                locationList.removeAt(position)
                notifyItemRemoved(position)
                notifyItemRangeChanged(position, locationList.size)
                notifyDataSetChanged(); // *** NEW LINE
            }
© www.soinside.com 2019 - 2024. All rights reserved.