2

我有两个活动,我们称它们为 Main 和 Second。主要的方向仅限于横向和反向横向(通过android:screenOrientation="sensorLandscape"清单),而第二个始终是横向(android:screenOrientation="landscape")。我想一直保持它们之间的淡入淡出过渡。我正在使用此代码来实现它:

int rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE;
Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
winParams.rotationAnimation = rotationAnimation;
win.setAttributes(winParams);

它在两个活动中都onCreate()被调用。onResume()这种机制在从 Main 切换到 Second(横向和反向横向)以及在横向中从 Second 回到 Main 时效果很好。当我在第二个活动中处于反向景观并尝试返回 Main 时会出现问题。在这种情况下,标准旋转动画触发(Second 锁定为横向,Main 适应反转横向)。所以不知何故我的淡入淡出动画被忽略了。
有趣的是,在 Android 5 (Samsing Galaxy S6) 上始终正确使用交叉淡入淡出动画,并且不会出现此问题。其他设备使用的是 Android 4.4.2 和 4.4.4。
我试图解决这个问题,overridePendingTransition(int enterAnim, int exitAnim)但它并没有改变一点。

如何修复或解决此问题?

4

0 回答 0