我处于一种情况,我希望在 Activity 之间的过渡期间没有可见的动画。我目前正在执行以下操作:
startActivity( intent );
getActivity().overridePendingTransition( 0, 0 );
工作正常。在第二个 Activity 中,我想为 LayoutTransitions 设置动画(无论好坏)——具体来说,调用
addView()
在 Root View 上加上 android:animateLayoutChanges="true"
在 XML 中。现在,
addView()
在我的onResume()
中被调用的第二个 Activity 并且不显示 LayoutTransition 动画(只是将添加的 View 弹出到位)。我猜是overridePendingTransitions(int, int)
或 startActivity()
(以及因此覆盖)是“有效的”,直到在第二个 Activity 中发生某些指定的生命周期事件。但是我找不到这个信息。我是否应该假设直到 onResume()
结束?稍后删除 View ,比如当用户按下后退按钮时,会触发 LayoutTransition 动画。但这与 Activity 生命周期无关。
所以我的问题是,
overridePendingTransition( 0, 0 )
在什么时候释放动画控制?
最佳答案
发布overridePendingTransition
不与任何生命周期事件相关联。overridePendingTransition
动画持续时间完成后将释放控制。
也就是说,300 ms
(默认持续时间)或 user specified duration
(在 XML 中设置或使用 setDuration())
如果在 Activity 之间的过渡期间没有可见动画,请使用 FLAG_ACTIVITY_NO_ANIMATION
而不是 overridePendingTransition
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity( intent );
关于android - overridePendingTransition & addView 与 LayoutTransitions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19824079/