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

Animation 延迟共享元素转换以完成状态列表动画,animation,android-5.0-lollipop,rippledrawable,shared-element-transition,activity-transition,Animation,Android 5.0 Lollipop,Rippledrawable,Shared Element Transition,Activity Transition,我一直在尝试在棒棒糖上进行共享元素转换。我有一个recyclerview,它加载了一些卡片,在下一个活动中单击该卡片可扩展到其详细信息 我在卡片上设置了涟漪效应和StateListAnimator。但这些都不可见,因为在这些效果完成之前过渡就开始了 有没有办法延迟转换,以便它可以等待statelist动画师和ripple完成 这是我使用的代码 ActivityOptions options = null; if (Utilities.isLollipop()) {

我一直在尝试在棒棒糖上进行共享元素转换。我有一个recyclerview,它加载了一些卡片,在下一个活动中单击该卡片可扩展到其详细信息

我在卡片上设置了涟漪效应和StateListAnimator。但这些都不可见,因为在这些效果完成之前过渡就开始了

有没有办法延迟转换,以便它可以等待statelist动画师和ripple完成

这是我使用的代码

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

提前感谢

我最终使用了一种变通方法,但我仍然想知道这样做的正确方法是什么,因此保留问题

我所做的工作是 1.移除状态列表animator并将其作为animator添加到onclick方法中。 2.使用处理程序向活动发布延迟调用

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

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

顺便说一句,我确实消除了这种效果,因为它不是很直观

第二个活动中已经设置了转换的方法可能会对某些人有所帮助:

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

你真的想这样延迟活动转换吗?用户可能会认为延迟是滞后的。这个想法是在进入过渡之前显示触摸交互,这样用户在触摸的地方可以得到反馈。我不认为任何标准的谷歌应用程序(如谷歌音乐、报摊等)都会这样做。您是否将您的应用程序与其他类似应用程序的行为进行了比较?只是想知道,你说得有道理。这个练习不是针对应用程序的。我只是在玩弄过渡。我也同意这种效果不是个好主意。。。但我想知道,如果你永远看不到StateListAnimator的功能,为什么谷歌会引入StateListAnimator。。。也许在活动开始前不久就不是这样的时间