Android沉浸模式活动过渡

问题描述 投票:1回答:1

我已成功将应用设置为沉浸式模式,因为我想隐藏状态栏(在顶部屏幕上)和导航栏(在底部屏幕上)。问题在于,当活动发生变化时,底部栏会自动出现,并在下降后立即消失。我想避免这种情况。

所有活动的清单中都设置了样式AppTheme.NoActionBar:

android:theme="@style/AppTheme.NoActionBar"

并且在OnCreate中都具有以下代码:

getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(
                new ViewTreeObserver.OnGlobalLayoutListener() {
                    @Override
                    public void onGlobalLayout() { 
                 GlobalFunctions.setFullscreen(getWindow().getDecorView());
                    }
                });

这是setFullscreen()函数:

public static void setFullscreen(View decorView){
        int ui_Options = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        decorView.setSystemUiVisibility(ui_Options);
    }

我应该在活动生命周期的onCreate之前设置这些属性吗?还是有其他解决方案?还是我以错误的方式实现了沉浸式模式?

android fullscreen android-immersive
1个回答
0
投票

您无需设置全局布局侦听器。只需在setFullscreen

之前调用super.onCreate()函数
© www.soinside.com 2019 - 2024. All rights reserved.