我有一个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)。提前感谢您的帮助。
答案 0 :(得分:4)
不是100%肯定我正在回答你的问题,但我有一个问题听起来类似于我开始新活动时没有完成的涟漪效应,所以我最终在OnClickListener中使用延迟处理程序:
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(intent);
}
}, 150);