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

时间:2014-12-10 12:55:29

标签: 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" >

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

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

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

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

我尝试在被调用的活动上调用postponeEnterTransition。但这并没有奏效 - 所谓的活动仍会立即显示,然后过渡推迟到你重新开始。

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

我正在使用API​​ 21(没有AppCompat)。提前感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

不是100%肯定我正在回答你的问题,但我有一个问题听起来类似于我开始新活动时没有完成的涟漪效应,所以我最终在OnClickListener中使用延迟处理程序:

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