删除方法:
public CustomObject remove(int adapterPos) {
CustomObject customObject = customObjects.remove(adapterPos); //arraylist of custom objects
notifyItemRemoved(adapterPos);
return customObject;
}
然后getItemViewType(int position)
内的位置是-1
而不是有效位置。
如果我将notifyItemRemoved(adapterPos);
更改为notifyDataSetChanged();
,问题就不会出现
此外,它有时也有效。当它工作时,删除正确的项目。
答案 0 :(得分:0)
我目前没有在我面前打开Android Studio,但-1
通常是无效的默认值。如果您从RecyclerView.Adapter
中删除该项目,然后尝试获取该视图的类型,则应指示该项目无效。当您致电notifyDataSetChanged()
时,它会让适配器知道数据已更改且应该更新,这就是您不再看到-1
的原因。
老实说,我不担心这个返回值,如果你要移除一个项目,你可能不应该得到它的viewtype。