延迟共享元素转换为完成状态列表动画

时间:2015-03-24 03:41:46

标签: animation android-5.0-lollipop rippledrawable shared-element-transition activity-transition

我一直在尝试Lollipop上的共享元素转换。我有一个Recyclerview加载一些卡片,然后在下一个活动中点击一下卡片就可以扩展到它的细节。

我在卡片上设置了涟漪效果和StateListAnimator。但是这些不可见,因为转变在这些效果完成之前开始。

有没有办法延迟转换,以便它可以等待状态列表动画师和涟漪完成?

这是我使用的代码

ActivityOptions options = null;
        if (Utilities.isLollipop()) {
            options = ActivityOptions.makeSceneTransitionAnimation(this, Pair.create(view, "hero_view"), Pair.create((View) fab, "fab"));
 startActivity(detailIntent, options.toBundle());
        }

提前致谢

2 个答案:

答案 0 :(得分:0)

我最终使用了一种解决方法,但我仍然想知道这样做的正确方法是什么,因此将问题保持开放。

我做的工作是 1.删​​除状态列表动画,并将其添加为onclick方法中的动画制作者。 2.使用处理程序发布对活动的延迟调用

new Handler().postDelayed(new Runnable() {
                      @Override
                      public void run() {

                          Intent i=new Intent(SearxhJobs.this,JobsTypes.class);
                          startActivity(i);
                      }
                  }, 200);

P.S-我最终删除了效果,因为它不是很直观。

答案 1 :(得分:0)

可能有助于某些已经在第二个活动中设置过渡的方式:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    getWindow().getSharedElementEnterTransition().setDuration(500);
    getWindow().getSharedElementReturnTransition().setDuration(500)
        .setInterpolator(new DecelerateInterpolator());
}