首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android中应用级联动画RecyclerView项

在Android中应用级联动画RecyclerView项
EN

Stack Overflow用户
提问于 2017-01-26 17:03:30
回答 2查看 529关注 0票数 0

我想做下一个动画:

当我点击我的RecyclerView的一个项目时,之前的项目会随着级联动画消失。

例如:我点击放置在位置10的项目,然后从0到9的项目必须应用向左滑动的级联动画消失。

怎么才能做到呢?

此时此刻,我试着这样申请:

ViewHolder方法:

代码语言:javascript
运行
复制
  @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++;
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-26 17:32:19

正确的方法是使用自定义的ItemAnimator。应尝试扩展SimpleItemAnimatorDefaultItemAnimator以应用动画。

ItemAnimator响应来自适配器的数据事件,因此您应该在适配器中包含调用notifyItemRemoved()notifyItemRangeRemoved()的逻辑,以便触发正确的动画。

票数 1
EN

Stack Overflow用户

发布于 2017-01-26 18:45:59

我认为你应该遍历你的数组,每次移除该项,然后调用notifyItemRemoved,你可能希望延迟每一次操作,这样你的动画效果就会很流畅。

代码语言:javascript
运行
复制
mResults.remove(position);
adapter.notifyItemRemoved(position);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41869931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档