Most visited

Recently visited

SortedList.BatchedCallback

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()来清除回调的所有更改。

Summary

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)

类似于 compare(Object, Object) ,应该比较两个并返回它们应如何订购。

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

Public constructors

SortedList.BatchedCallback

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.

Public methods

areContentsTheSame

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.

areItemsTheSame

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.

compare

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.

dispatchLastEvent

void dispatchLastEvent ()

此方法将任何未决的事件通知分派给包装的回调。 完成编辑SortedList后,您必须始终调用此方法。

onChanged

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.

onInserted

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.

onMoved

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.

onRemoved

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.

Hooray!