overridePendingTransition

overridePendingTransition

我处于在“活动”之间进行过渡期间不希望看到可见动画的情况。我目前正在执行以下操作:

startActivity( intent );
getActivity().overridePendingTransition( 0, 0 );

工作良好。在第二个活动中,我想为LayoutTransitions设置动画(好坏)–具体来说,在根视图上调用addView()并在XML中调用android:animateLayoutChanges="true"

现在,在第二个Activity的addView()中调用onResume(),并且不显示LayoutTransition动画(只是将添加的视图弹出就位)。我猜想overridePendingTransitions(int, int)startActivity()(以及覆盖)也都“有效”,直到在第二个Activity中发生某些指定的生命周期事件为止。但我找不到此信息。我是否应该假设这是onResume()的结尾?

稍后删除视图,例如当用户按下后退按钮时,将触发LayoutTransition动画。但这与活动生命周期无关。

所以我的问题是,overridePendingTransition( 0, 0 )在什么时候释放动画控制权?

最佳答案

overridePendingTransition的发布与任何生命周期事件都不相关。

动画持续时间完成后,overridePendingTransition将释放控制权。
也就是说,300 ms(默认持续时间)或user specified duration(以XML或使用setDuration()设置)

要在“活动”之间进行过渡期间没有可见的动画,请使用FLAG_ACTIVITY_NO_ANIMATION

代替overridePendingTransition
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);

10-05 23:57