我想做下一个动画:
当我点击我的RecyclerView的一个项目时,之前的项目会随着级联动画消失。
例如:我点击放置在位置10的项目,然后从0到9的项目必须应用向左滑动的级联动画消失。
怎么才能做到呢?
此时此刻,我试着这样申请:
ViewHolder方法:
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
swipeAnimation(position);
}
});
lstViewsHolder.add(holder.itemView);
setAnimation(holder.itemView, position);
}
private void swipeAnimation(int position){
int init = 0;
while(init < position){
lstViewsHolder.get(init).startAnimation(AnimationUtils.loadAnimation(context, R.anim.swipe_left));
init++;
}
}发布于 2017-01-26 17:32:19
正确的方法是使用自定义的ItemAnimator。应尝试扩展SimpleItemAnimator或DefaultItemAnimator以应用动画。
ItemAnimator响应来自适配器的数据事件,因此您应该在适配器中包含调用notifyItemRemoved()或notifyItemRangeRemoved()的逻辑,以便触发正确的动画。
发布于 2017-01-26 18:45:59
我认为你应该遍历你的数组,每次移除该项,然后调用notifyItemRemoved,你可能希望延迟每一次操作,这样你的动画效果就会很流畅。
mResults.remove(position);
adapter.notifyItemRemoved(position);https://stackoverflow.com/questions/41869931
复制相似问题