在全屏和正常活动之间导航

时间:2014-07-30 09:01:56

标签: android android-activity navigation android-fullscreen

有两项活动。

活动A是使用getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

的全屏活动(隐藏状态栏)

活动B是正常活动(状态栏可见)。

我需要在活动A和活动B之间导航。

问题是,当状态栏变为可见并且活动调整大小时,从A到B会有一个抖动动作。

知道如何确保从一个平稳过渡到另一个活动吗?

此外,我正在使用幻灯片和幻灯片动画来进行活动之间的转换。

2 个答案:

答案 0 :(得分:2)

您可以在切换活动时简单地使用动画,

        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

不要在现有动画中添加alpha,如果有帮助,请尝试这种方式,

替换

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);

答案 1 :(得分:1)

我在我的样式中使用Theme.AppCompat.Light.NoActionBar作为我要显示为全屏的活动,然后由@MehulJoisar正确指出

WindowManager.LayoutParams attributes = getWindow().getAttributes();
    attributes.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN |   WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; 
    getWindow().setAttributes(attributes);

快乐编码:)