我有两个使用 Theme.Holo.Wallpaper.NoTitleBar 样式的 Activity ,我想为它们的过渡设置动画。我在 4 个不同的 xml 文件中创建了 4 个这样的动画。
left_in.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="100%" android:toXDelta="0%" android:fromYDelta="0%"
android:toYDelta="0%" android:duration="200" />
这是关于问题的图形:
图片A Activity 1正在运行
图片 B Activity 1 开始 Activity 2,过渡效果很好
pic C Activity 2正在运行;
pic D 问题!翻译开始了,但墙纸现在似乎固定在 Activity 1 上。所以我看到 Activity 2 在黑色背景上消失, Activity 1 与墙纸一起出现(墙纸不仅没有被揭开,它还在翻译)。
我在不同的设备上测试了相同的代码: 宏碁 Liquid E (android 2.3)、三星 S4 (4.3)、HTC one (Cyanogen 11)。这个问题只出现在三星。有人有什么建议吗?
最佳答案
我找到了导致问题的原因。当 Activity 被标记为“singleTask”时,似乎会出现此问题。
事情是这样的。
- Activity1 启动 Activity2。
- 转换按预期运行。
- Activity2 尝试启动 Activity1 但它不会重新创建,只是放在前台。
- 过渡显示故障。
我无法将 activity1 启动模式更改为“默认”,所以我只是在 activity2 中启动 activity1 时添加了这些标志。
startActivity(new Intent(this, activity1.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK));
这解决了问题。
关于android - overridePendingTransition 和墙纸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21177564/