android - 启动现有单任务活动时活动场景转换不起作用
问题描述
我正在将场景转换应用于活动。说我有 2 个活动:MainActivity
with launch modesingleTask
和NextActivity
with launch mode standard
。他们有相同的主题:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
在以下情况下:
MainActivity
通过以下方式开始NextActivity
:startActivity(Intent(this,NextActivity::class.java), ActivityOptions.makeSceneTransitionAnimation(this).toBundle())
场景一之后,
NextActivity
返回MainActivity
viafinishAfterTransition()
方案一结束后,
NextActivity
返回MainActivity
via:startActivity(Intent(this,MainActivity::class.java), ActivityOptions.makeSceneTransitionAnimation(this).toBundle())
由于MainActivity
处于singleTask
启动模式,因此 2 和 3 应该导致相同的任务堆栈行为:NextActivity
完成并且用户被带回MainActivity
.
现在的问题是,在 1 和 2 中,转场播放正确,但在 3 中,转场没有播放。详细地说,NextActivity
离开默认动画(从屏幕上滑下),而MainActivity
保持透明,壁纸可见,但不可迭代。
在过渡监听器中添加了几println
行后,我发现在 3 中,NextActivity
开始了退出过渡,但显示不正确。MainActivity
并且没有开始重新进入转换。
这种奇怪行为的原因是什么?
作为参考,活动的代码(在 Kotlin 中)在这里。
解决方案
推荐阅读
- android - 如何修复 Android 资源链接失败 dialogCornerRadius not found
- java - 在 JUnit 中使用 @SuiteClasses 注释和使用类数组之间的区别
- firebase - 如何将元数据添加到 Firebase 身份验证
- javascript - 如何应用影响具有特定类名的每个元素的父级的函数?
- android - NDK 原生编舞是否被限制在 10fps?
- c# - 使用单独的值列表过滤列表
- node.js - AWS Lambda 函数同步问题
- rally - 如何创建具有多值字段类型的工件?
- json - PUT 和 POST 的正文未知
- objective-c - How to represent Objc-C NSUInteger[] = {0,1,2} in Swift as UnsafeMutablePointer
?