overridePendingTransition& addView with LayoutTransitions

时间:2013-11-06 22:22:10

标签: android android-animation layouttransition

我处在一种情况,我希望在活动之间的转换期间没有可见的动画。我目前正在做以下事情:

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 )在什么时候释放对动画的控制权?

1 个答案:

答案 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);