Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有SortedList的RecyclerView未排序_Android_Android Recyclerview - Fatal编程技术网

Android 带有SortedList的RecyclerView未排序

Android 带有SortedList的RecyclerView未排序,android,android-recyclerview,Android,Android Recyclerview,我用a和a。SortedListAdapterCallback用 这是适配器构造函数中的相关代码: mCallback=new SortedList.BatchedCallback(新适配器privateeventsCallback(this)); mList=新的分类列表(DataEntity.class,mCallback); 数据来自后端并加载到页面中。对于页面中的每个项目,我调用mList.add(item),并在每个页面的末尾调用mCallback.dispatchLastEven

我用a和a。SortedListAdapterCallback用

这是适配器构造函数中的相关代码:

mCallback=new SortedList.BatchedCallback(新适配器privateeventsCallback(this));
mList=新的分类列表(DataEntity.class,mCallback);
数据来自后端并加载到页面中。对于页面中的每个项目,我调用
mList.add(item)
,并在每个页面的末尾调用
mCallback.dispatchLastEvent()

我现在的问题是,RecyclerView显示的是一个无序列表

如果我向上和向下滚动,则项目将被订购

如果使用SortedListAdapterCallback而不使用SortedList.BatchedCallback,则项目也会被订购


如果使用SortedList.BatchedCallback,为什么在加载后显示RecyclerView无序列表?

RecyclerView仅在调用
onBindViewHolder(ViewHolder holder,int position)
时更新任何视图。因此,即使您的
mList
被排序,它也不会反映在RecyclerView上,除非您向外滚动并向内滚动


如果要手动更新RecyclerView,则每次更改数据集时(在您的情况下,每次调用回调时),都可以在适配器中使用
notifyDataSetChanged()
。调用时,将刷新RecyclerView,您应该可以获得已排序的列表。

RecyclerView仅在调用
onBindViewHolder(ViewHolder,int position)
时更新任何视图。因此,即使您的
mList
被排序,它也不会反映在RecyclerView上,除非您向外滚动并向内滚动

如果要手动更新RecyclerView,则每次更改数据集时(在您的情况下,每次调用回调时),都可以在适配器中使用
notifyDataSetChanged()
。当这被调用时,RecyclerView被刷新,您应该得到您的排序列表

mCallback = new SortedList.BatchedCallback<>(new AdapterPrivateEventsCallback(this));
mList = new SortedList<>(DataEntity.class, mCallback);