库使用:程序兼容性-V7:22.2.1,设计:使用22.2.1活动返回过渡 - 共享元素 - 杀死活性
主题:
设备/的Android版本上再现:连结6
问题:返回活动快速重绘/出现,然后以期望的行为淡入,只有"Don't keep activities alive"
。
我想知道这是一个错误还是预期的行为。我有一个非常简单的设置。活动A包含一个包装在AppbarLayout
和CoorindinatorLayout
中的工具栏。工具栏包含一个Cardview
和一个TextView
。点击TextView
后,活动A将启动活动B.我使用共享元素并将其作为选项通过ActivityCompat.StartActivity(bundle, options);
我的共享元素即使在设备旋转后也可以很好地工作。在阅读我如何可以PostPoneEnterTransition
和组合PreDrawListeners
即使旋转后我也能够成功实现所需的转换。我的实际活动包含一个Viewpager
/TabLayout
和2+片段,但为了简单起见,我已将它剥离回视频中,并查看是否有其他内容导致此问题。
在处理输入转换回到活动A的轮换和延期时,我决定打开开发人员选项并检查"Don't keep activities alive"
。 video描述了在启用该选项的情况下运行的应用程序。如果仔细观察,您可以看到返回到活动A后,它会非常快速地完全绘制和隐藏,然后发生淡入淡出以及共享元素过渡。
我也排除了动画中的导航栏和状态栏,所以我没有看到这些闪烁(重绘冗余)。
我的问题是:
这是一个错误,还是我失去了为了防止这种情况的一个步骤。
为什么应用程序/转换与
"Don't keep activities alive"
相比,旧式设备轮转(销毁/重新创建)的行为有所不同。我注意到玩了一些谷歌应用程序,这种行为不会发生,或至少我可以找到。有没有办法具体检查我回来的活动是否“完全被摧毁”,这样我就可以取消动画了?或做一些不同的事情?
如果需要的话,但我的设置非常简单,反映从Android文档/堆栈溢出一堆烦人的例子我可以包括细节和代码示例。
你能分享一些代码,显示你如何处理旋转? –