我创建了一个显示项目的
RecyclerView
。
每 X 个项目,我都有一个原生广告,其下方有一个带有一些标题的
TextView
..
用户可以选择删除项目,然后我使用以下方法来执行此操作:
public void removeAt(int position) {
items.remove( position );
notifyItemRemoved( position );
notifyItemRangeChanged( position, items.size() );
}
它的工作效果很好,删除了该项目并将整个项目移到一行。
但是,当我滚动到已删除项目的位置时,它的图像似乎仍然被卡住,并且在
RecyclerView
行之间的背景中显示它,如下所示:
有什么方法可以确保删除的项目不会出现这样的情况吗?
解决方案:
将标题背景设置为白色就可以了。
最常见的原因是
RecyclerView
位于被插入两次的 Fragment
内,通常是由于当它已经存在时被无条件添加到 Activity 的 onCreate 中。 将背景设置为白色会掩盖问题,但不能解决问题。
添加一些日志记录(在设置适配器时进行日志记录是一个好地方)来检查您的
RecyclerView
实际上是否添加的次数比您想象的要多。