有两个活动.
活动A是全屏活动(隐藏状态栏),使用getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
活动B是正常的活动(状态栏可见).
我需要在活动A和活动B之间导航.
问题在于,随着状态栏变得可见并且活动大小调整,从A到B时会有抽动动作.
知道如何确保从一个活动到另一个活动顺利过渡吗?
另外,我使用滑入和滑出动画在活动之间进行过渡.
解决方法:
您可以在切换活动时简单地使用动画,
startActivity(new Intent(FirstActivity.this, SecondActivity.class));
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
编辑:
更换以下一块
<translate
android:duration="300"
android:fromXDelta="100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%">
与这个
<translate
android:duration="300"
android:fromXDelta="100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%">
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
注意:
整个代码应该看起来像这样,
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="300"
android:fromXDelta="100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%">
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>
可选方式:(参考:article)
可以在有帮助的情况下尝试将这种方式添加到现有动画中,
更换
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
与
WindowManager.LayoutParams attributes = getWindow().getAttributes();
attributes.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
getWindow().setAttributes(attributes);