Android 同时使用MakeScenetTransitionAnimation时未发生涟漪效应

Android 同时使用MakeScenetTransitionAnimation时未发生涟漪效应,android,android-5.0-lollipop,Android,Android 5.0 Lollipop,我有一个rippleDrawable,用作线性布局的背景: <LinearLayout android:id="@+id/card_layout" android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:clickable="true" android:background=

我有一个rippleDrawable,用作线性布局的背景:

<LinearLayout
    android:id="@+id/card_layout"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:clickable="true"
    android:background="@drawable/ripple"
    android:orientation="vertical" >

我想在点击布局后开始一个新的活动。当我只做一个startActivity()时,涟漪效果很好-你可以看到大部分涟漪效果发生,然后显示新屏幕

但是,如果我使用ActivityOptions Compat.MakeScenetTransitionAnimation启动活动,则点击布局时不会出现连锁反应。注意,在这种情况下,长时间按压仍然会显示波纹

我也在一个按钮上试过,看到了同样的结果

所以这就像makeSceneTransitionAnimation发生得太快,或者覆盖了涟漪效应。我希望涟漪完成,或者至少在场景过渡动画发生之前看到一些涟漪。我不确定这是否与在渲染线程上竞争的涟漪和过渡有关

我尝试在被调用的活动上调用延迟EnterTransition。但这并没有起作用-被调用的活动仍然会立即显示,然后转换会被推迟,直到您再次启动它

有人知道我做错了什么吗


我使用的是API21(没有AppCompat)。提前感谢您的帮助。

我不能100%确定我是否回答了您的问题,但我遇到了一个问题,听起来与启动新活动时未完成的涟漪效应类似,因此我最终使用了OnClick Listener中有延迟的处理程序:

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
       startActivity(intent);
    }
}, 150);

你设法解决了这个问题吗?@ChristerNordvik不,我还没有找到解决这个问题的方法。我使用AppCompat也遇到了同样的问题。谢谢timothyjc。我尝试了一下,延迟了150次,但这通常会导致不平稳的过渡,在大多数情况下,你都可以清楚地看到150次后的停止。但有趣的是,当我将延迟设置为0时,过渡更平滑,并且我经常看到一些或全部波纹。没有处理器,过渡是平滑的,但我很少看到涟漪。我有同样的问题,这是可行的,但不是最佳的。最好立即开始活动,但延迟动画。通过这种方式,我们可以使用构建活动的等待时间,并且可以更顺利地完成下面的动画。尚未找到它的实现,但我将继续查找。。。