3

有两个活动。

Activity A 是全屏 Activity(状态栏隐藏),使用getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

Activity B 是一个普通的Activity(状态栏可见)。

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

问题是当状态栏变得可见并且活动调整大小时,从 A 移动到 B 时会出现抽搐动作。

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

此外,我正在使用滑入和滑出动画在活动之间进行转换。

4

2 回答 2

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>

可选方式:(参考:文章

如果有帮助,请尝试这种方式,而不是向现有动画添加 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);
于 2014-07-30T09:06:58.143 回答
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);

快乐编码:)

于 2016-11-14T14:57:08.717 回答