在应用简历上隐藏状态栏

时间:2016-08-13 07:03:40

标签: c# android xamarin

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

我从Activity 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();
    }

但状态栏(和键盘)仍然会在恢复应用时显示。

我还需要做什么?

1 个答案:

答案 0 :(得分:1)

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

这是来自粘性沉浸的android developer docs

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