2

我处于一种情况,我希望在活动之间的过渡期间没有可见的动画。我目前正在执行以下操作:

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

工作正常。在第二个活动中,我想为 LayoutTransitions 设置动画(无论好坏)——特别是调用addView()根视图并结合android:animateLayoutChanges="true"XML。

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

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

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

4

1 回答 1

0

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

overridePendingTransition动画持续时间完成后将释放控制。
300 ms(默认持续时间)或user specified duration(在 XML 中设置或使用 setDuration())

对于活动之间的过渡期间没有可见动画,请使用FLAG_ACTIVITY_NO_ANIMATION

代替overridePendingTransition

intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
开始活动(意图);

于 2013-11-19T06:10:02.050 回答