我处在一种情况,我希望在活动之间的转换期间没有可见的动画。我目前正在做以下事情:
startActivity( intent );
getActivity().overridePendingTransition( 0, 0 );
工作正常。进入第二个Activity后,我想为LayoutTransitions设置动画(为了更好或更坏) - 特别是在XML视图中与addView()
结合的根视图上调用android:animateLayoutChanges="true"
。
现在,addView()
正在第二个活动的onResume()
中调用,并且没有显示任何LayoutTransition动画(只是弹出添加的视图)。我猜测overridePendingTransitions(int, int)
或startActivity()
(以及覆盖也是)“有效”,直到第二个Activity中发生某些指定的生命周期事件。但我找不到这些信息。我应该假设它直到onResume()
结束?
稍后删除视图,例如当用户按下后退按钮时,会触发LayoutTransition动画。但这与活动生命周期无关。
所以我的问题是,overridePendingTransition( 0, 0 )
在什么时候释放对动画的控制权?
答案 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);