Ответ 1
Вы можете уведомить своих наблюдателей RecyclerView.Adapter
о частичном обновлении вашего RecyclerView.ViewHolders
, передав полезную нагрузку Object
.
notifyItemRangeChanged(positionStart, itemCount, payload);
Где payload
может быть или содержать флаг, представляющий относительное или абсолютное время. Чтобы привязать payload
к вашим держателям, переопределите следующий onBindViewHolder(viewHolder, position, payloads)
метод в вашем адаптере и проверьте параметр payloads
для данных.
@Override
public void onBindViewHolder(MyViewHolder viewHolder, int position, List<Object> payloads) {
if (payloads.isEmpty()) {
// Perform a full update
onBindViewHolder(viewHolder, position);
} else {
// Perform a partial update
for (Object payload : payloads) {
if (payload instanceof TimeFormatPayload) {
viewHolder.bindTimePayload((TimeFormatPayload) payload);
}
}
}
}
В вашем методе MyViewHolder.bindTimePayload(payload)
обновите свое время TextViews
до формата времени, указанного в payload
.