我处于在“活动”之间进行过渡期间不希望看到可见动画的情况。我目前正在执行以下操作:
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);