【问题标题】:How to implement animation on removing element from recycler view如何实现从回收器视图中删除元素的动画
【发布时间】:2019-11-11 12:53:39
【问题描述】:

当一个项目从使用GridLayoutManagerRecycler View 中删除时,我试图实现这个Animation。我使用下面的代码进行项目点击,但出现的动画与预期的不同。如何正确实施?

itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {


                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                        TransitionManager.beginDelayedTransition(rv);
                    }

                    removeItem(position);
                }
            });

【问题讨论】:

  • 发布一些代码以获得帮助。无法理解这里的确切问题。
  • 添加了更多细节@shubhamvashisht

标签: android android-recyclerview android-animation gridlayoutmanager


【解决方案1】:

在 ItemView 上实现动画,如下所示

更新答案

根据您在链接中提到的要求。 你需要做两件事:

  1. 执行 RotationY 动画
  2. 更新 RecyclerView'Adapter 的数据。

进入第一部分。

根据需要设置CameraDistance以改变视角。

根据需要设置枢轴点。

使用 ObjectAnimator 或 ValueAnimator。

示例代码如下:

        view.setPivotX();
        view.setPivotY();

        ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(view,"rotationY",0,180);
        objectAnimator.setDuration(10000);

进入第二部分。

设置 AnitionListener。并在OnEndAnimation()回调中执行你的适配器更新代码

类似以下内容:

objectAnimator.addListener(new Animator.AnimatorListener() {
            .......
            @Override
            public void onAnimationEnd(Animator animator) {
                // remove an element of  recyclerview's adapter data list
                // notify adapter about data removal like adapter.notifyItemRemoved(position);

            }
            ......

注意:无需设置翻译动画。当您更新适配器中的数据删除时,此模拟将自动进行

更多参考 Official Document is here

快乐编码。

【讨论】:

  • 在翻译动画中,如果我们必须将一个回收器视图(网格)项目移动到另一个在相关动画中给出的位置,应该给出什么参数?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 2021-11-19
相关资源
最近更新 更多