隐藏状态栏的应用程序简历

本文关键字:应用程序 状态栏 隐藏 | 更新日期: 2023-09-27 18:02:11

我想在我的应用程序中隐藏状态栏。我正在使用c#和Xamarin来构建应用程序。

我有以下方法,我从活动OnCreate方法调用:

    private void hideBars()
    {
        var decorView = this.Window.DecorView;
        int uiOptions = (int)Android.Views.SystemUiFlags.LayoutStable |
                        (int)Android.Views.SystemUiFlags.LayoutHideNavigation |
                        (int)Android.Views.SystemUiFlags.Fullscreen |
                        (int)Android.Views.SystemUiFlags.ImmersiveSticky;
        decorView.SystemUiVisibility = (Android.Views.StatusBarVisibility)uiOptions;
        ActionBar.Hide();
    }

这很好-当应用程序第一次加载时,状态栏是隐藏的,但可以按预期向下滑动。

如果我切换到另一个应用,然后恢复原来的应用,状态栏是可见的,软键盘也是可见的。我希望状态栏(和软键盘)是隐藏的简历,就像在创建。我有以下方法:

    protected override void OnResume()
    {
        base.OnResume();
        hideBars();
    }

,但状态栏(和键盘)仍然出现在恢复应用程序。

我还需要做什么?

隐藏状态栏的应用程序简历

Window.AddFlags(WindowManagerFlags.Fullscreen);
Window.ClearFlags(WindowManagerFlags.ForceNotFullscreen);

这是来自android开发者关于粘性沉浸的文档

@Override
public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        decorView.setSystemUiVisibility(
                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);}
}