public static class SortedList.BatchedCallback
extends Callback<T2>
java.lang.Object | ||
↳ | android.support.v7.util.SortedList.Callback<T2> | |
↳ | android.support.v7.util.SortedList.BatchedCallback<T2> |
一个回调实现,可以批量通知由SortedList调度的事件。
如果您想对SortedList执行多个操作,但不希望逐个分派每个事件,这可能会很有用,这可能会导致性能问题。
例如,如果要将多个项目添加到SortedList,则BatchedCallback调用会将个别onInserted(index, 1)
调用转换为一个onInserted(index, N)
如果项目添加到连续索引中。 此更改可以帮助RecyclerView更轻松地解决更改。
如果SortedList中的连续更改不适合批处理,则一旦检测到此类情况,BatchingCallback就会分派它们。 在SortedList编辑完成后,您必须始终调用dispatchLastEvent()
来清除回调的所有更改。
Public constructors |
|
---|---|
SortedList.BatchedCallback(Callback<T2> wrappedCallback) 创建一个包装提供的Callback的新BatchedCallback。 |
Public methods |
|
---|---|
boolean |
areContentsTheSame(T2 oldItem, T2 newItem) 当它想要检查两个项目是否具有相同的数据时,由SortedList调用。 |
boolean |
areItemsTheSame(T2 item1, T2 item2) 由SortedList调用来决定两个对象是否代表相同的Item。 |
int |
compare(T2 o1, T2 o2) 类似于 |
void |
dispatchLastEvent() 此方法将任何未决的事件通知分派给包装的回调。 |
void |
onChanged(int position, int count) 当给定位置上的项目更新时,由SortedList调用。 |
void |
onInserted(int position, int count) 当物品插入给定位置时,由SortedList调用。 |
void |
onMoved(int fromPosition, int toPosition) 当项目在列表中改变其位置时,由SortedList调用。 |
void |
onRemoved(int position, int count) 当一个项目从给定的位置移除时,由SortedList调用。 |
Inherited methods |
|
---|---|
From class android.support.v7.util.SortedList.Callback
|
|
From class java.lang.Object
|
|
From interface java.util.Comparator
|
SortedList.BatchedCallback (Callback<T2> wrappedCallback)
创建一个包装提供的Callback的新BatchedCallback。
Parameters | |
---|---|
wrappedCallback |
Callback : The Callback which should received the data change callbacks. Other method calls (e.g. compare(Object, Object) from the SortedList are directly forwarded to this Callback. |
boolean areContentsTheSame (T2 oldItem, T2 newItem)
当它想要检查两个项目是否具有相同的数据时,由SortedList调用。 SortedList使用这些信息来决定是否应该调用onChanged(int, int)
。
SortedList使用此方法检查等式而不是 equals(Object)
以便您可以根据您的UI更改其行为。
例如,如果您使用SortedList与 RecyclerView.Adapter
,则应返回项目的可视表示是否相同。
Parameters | |
---|---|
oldItem |
T2 : The previous representation of the object. |
newItem |
T2 : The new object that replaces the previous one. |
Returns | |
---|---|
boolean |
True if the contents of the items are the same or false if they are different. |
boolean areItemsTheSame (T2 item1, T2 item2)
由SortedList调用来决定两个对象是否代表相同的Item。
例如,如果您的项目具有唯一的ID,则此方法应检查它们的相等性。
Parameters | |
---|---|
item1 |
T2 : The first item to check. |
item2 |
T2 : The second item to check. |
Returns | |
---|---|
boolean |
True if the two items represent the same object or false if they are different. |
int compare (T2 o1, T2 o2)
类似于 compare(Object, Object)
,应该比较两个并返回它们应如何订购。
Parameters | |
---|---|
o1 |
T2 : The first object to compare. |
o2 |
T2 : The second object to compare. |
Returns | |
---|---|
int |
a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second. |
void dispatchLastEvent ()
此方法将任何未决的事件通知分派给包装的回调。 完成编辑SortedList后,您必须始终调用此方法。
void onChanged (int position, int count)
当给定位置上的项目更新时,由SortedList调用。
Parameters | |
---|---|
position |
int : The position of the item which has been updated. |
count |
int : The number of items which has changed. |
void onInserted (int position, int count)
当物品插入给定位置时,由SortedList调用。
Parameters | |
---|---|
position |
int : The position of the new item. |
count |
int : The number of items that have been added. |
void onMoved (int fromPosition, int toPosition)
当项目在列表中改变其位置时,由SortedList调用。
Parameters | |
---|---|
fromPosition |
int : The previous position of the item before the move. |
toPosition |
int : The new position of the item. |
void onRemoved (int position, int count)
当一个项目从给定的位置移除时,由SortedList调用。
Parameters | |
---|---|
position |
int : The position of the item which has been removed. |
count |
int : The number of items which have been removed. |