使用makeSceneTransitionAnimation时不会出现波纹效应

Sco*_*ott 6 android android-5.0-lollipop

我有一个rippleDrawable,我用它作为LinearLayout的背景:

<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" >
Run Code Online (Sandbox Code Playgroud)

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

但是,如果我使用ActivityOptionsCompat.makeSceneTransitionAnimation启动活动,则在点击布局时不会发生涟漪效应.注意,在这种情况下,长按仍会显示纹波.

我也在按钮上尝试了这个,并看到了相同的结果.

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

我试着在被调用的活动上调用postponeEnterTransition.但是这不起作用 - 被调用的活动仍然立即显示,然后转换被推迟,直到你再次启动它.

任何人对我可能做错了什么有任何想法?

我正在使用API​​ 21(没有AppCompat).在此先感谢您的帮助.

tim*_*yjc 4

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

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