Php*_*pXp 31 animation android android-recyclerview
我正试图在我的时间里随着时间改变这个领域RecyclerView.每个人都ViewHolder包含一个CardView和更多的内部视图.我想要制作动画的唯一视图是有时间的视图.如您所见,没有动画:
adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
逐个更新项目无济于事,因为整个CardView闪烁:
int len = adapter.getItemCount();
for(int i=0;i<len;i++) {
adapter.notifyItemChanged(i);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法获得所有的列表ViewHolders然后更新(动画)TextView每个内部的那个?
Rya*_*yan 57
您可以通过传递有效负载通知您RecyclerView.Adapter的观察者发布您的部分更新.RecyclerView.ViewHoldersObject
notifyItemRangeChanged(positionStart, itemCount, payload);
Run Code Online (Sandbox Code Playgroud)
哪里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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在您的MyViewHolder.bindTimePayload(payload)方法中,将您的时间更新TextViews为payload.中指定的时间格式.
| 归档时间: |
|
| 查看次数: |
9025 次 |
| 最近记录: |