我有一个RecyclerView和它的RecyclerView.Adapter视图持有人。我正在尝试从列表中删除一个项目,onClick()在 ViewHolder 中的删除按钮上的代码如下
int position = getAdapterPosition();
if(position > -1)
{
Place place = placeList.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, getItemCount());
}
Run Code Online (Sandbox Code Playgroud)
尽管删除视图并执行动画(列表也会受到影响),旧视图(或较低的视图)仍然存在或再次绘制。例如,如果列表以 size = 5 开头,那么我尝试删除索引 4,他删除 4,然后仍然绘制 5 个视图。
编辑
如果我删除notifyItemRangeChanged()那么它只会在我执行以下操作时才会出现该错误
1-点击删除
2-单击按钮非常快速,可将我带到新视图
3-回到我可以删除的列表
4-开始删除,错误发生。即使List大小 = 0(getItemCount 被调用为 0),仍然保留 1 个项目。
如果我只调用 NotifyDataSetChanged(),那么它会删除项目,但视图只是停留在那里!!
任何帮助或建议表示赞赏。
谢谢。
编辑完整课程链接
我有这个错误.
错误:任务':myApp:createDebugMainDexClassList'的执行失败.com.android.ide.common.internal.LoggedErrorException:无法运行命令:java -Xmx1024M -cp\android-sdk\build-tools\19.1.0\lib\dx.jar com.android.multidex.ClassReferenceListBuilder myApp\build\intermediates\multi-dex\debug\componentClasses.jar myApp\build\intermediates\multi-dex\debug\allclasses.jar
错误代码:1输出:错误:无法找到或加载主类com.android.multidex.ClassReferenceListBuilder
我正在尝试使用multidex库,因为我的应用程序超过65000方法,因为我使用外部库作为链接描述,我已经在mainfest和build.gradle文件中添加了行,任何提示都将不胜感激.谢谢
几次启动后编辑我得到了这个错误.
错误:任务':myApp:dexDebug'的执行失败.com.android.ide.common.internal.LoggedErrorException:无法运行命令:\ android-sdk\build-tools\21.1.0\dx.bat --dex --no-optimize --multi-dex --main- dex-list myApp\build\intermediates\multi-dex\debug\maindexlist.txt --output myApp\build\intermediates\dex\debug --input-list = myApp\build\intermediates\tmp\dex\debug\inputList. txt ,,错误代码:3.
输出:UNEXPECTED TOP-LEVEL ERROR:java.lang.OutOfMemoryError:Java堆空间
我试图增加文件'studio64.exe.vmoptions'中的Xms1024m -Xmx1024m的大小,但它仍然没有帮助,我也尝试在设置>编译器> VM选项Xms1024m -Xmx1024m