所用库: appcompat-v7:22.2.1, design:22.2.1
使用主题:
测试设备/Android版本:Nexus 6
问题:只有在“不保留活动”选项下,返回Activity会快速重绘并以预期行为淡入。
我想知道这是bug还是预期行为。 我的设置非常简单。 Activity A包含一个包含在和中的工具栏。 工具栏包含和。 单击后,Activity A启动Activity B。 我正在使用共享元素,并通过将它们作为选项传递。
我的共享元素在设备旋转后仍然完美运行。在阅读了如何使用PostPoneEnterTransition
并与PreDrawListeners
组合后,我成功地实现了所需的转换,即使在旋转后也是如此。我的实际活动包含一个Viewpager
/ TabLayout
和2个以上的片段,但为了简单起见,在视频中我已经剥离了它,并查看是否有其他原因导致了这个问题。
当处理旋转和推迟进入Activity A的过渡时,我决定打开开发者选项并勾选"不保留活动"
。视频展示了启用该选项后应用程序的运行情况。如果你仔细观察,在返回到Activity A时,它会完全绘制并迅速隐藏,然后淡入并进行共享元素过渡。
我还在动画中排除了导航栏和状态栏,以免看到这些闪烁(重新绘制冗余)。
我的问题是:
这是一个bug,还是我错过了某些步骤以防止它发生。
为什么应用程序/转换在“不保留活动”与普通的设备旋转(销毁/重新创建)时表现不同。
通过玩弄一些谷歌应用程序,我注意到这种行为并不会发生,或者至少我没有找到。有没有一种方法可以具体检查我返回的活动是否“完全销毁”,以便我可以取消动画?或者做一些不同的事情?
如果需要,我可以包含具体内容和代码示例,但我的设置非常简单,并反映了Android文档/Stack-overflow中的大量样板示例。