android - overridePendingTransition & addView 与 LayoutTransitions

标签 android android-animation layouttransition

我处于一种情况,我希望在 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/

相关文章:

android - 如何将回调放入 Intent 中?

android - 如何制作美丽时尚的应用程序,如 Timely

android - 翻译动画从屏幕开始而不是它所属的地方

android - 在操作栏中为应用程序图标或 Logo 设置动画

android - LayoutTransition 高度为 0 会导致 View 立即消失而不产生动画

java - 如果加载超过一定时间则关闭 AsyncTask(android)

java - 即使应用程序未运行,也会显示警报对话框

android - 如何在android中更改自定义微调器的样式