-
安卓
安卓10以上系统,在MainActivity.cs
文件中重写OnCreate
方法。参考安卓官方文档。1 2 3 4 5 6 7 8 9
protected override void OnCreate(Bundle? savedInstanceState) { base.OnCreate(savedInstanceState); WindowInsetsControllerCompat windowInsetsController = WindowCompat.GetInsetsController(Window, Window.DecorView); // 设置从上下滑动显示状态栏的行为 windowInsetsController.SystemBarsBehavior = WindowInsetsControllerCompat.BehaviorShowTransientBarsBySwipe; // 隐藏状态栏 windowInsetsController.Hide(WindowInsetsCompat.Type.SystemBars()); }
安卓12系统,在
MainActivity.cs
文件中重写OnCreate
方法。1 2 3 4 5 6 7 8
protected override void OnCreate(Bundle? savedInstanceState) { base.OnCreate(savedInstanceState); // 全屏显示(会隐藏顶部状态栏但是无法隐藏底部导航栏) Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen); // 隐藏底部导航栏(可以通过从下向上滑动显示导航栏) Window.DecorView.SystemUiFlags = SystemUiFlags.HideNavigation; }
在
MainActivity.cs
文件中添加如下代码。如不需要显示下部的导航条可以在设置-无障碍-开启隐藏状态栏(安卓10)。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
private void SetWindowLayout() { if (Window != null) { if (Build.VERSION.SdkInt >= BuildVersionCodes.R) { #pragma warning disable CA1416 IWindowInsetsController wicController = Window.InsetsController; Window.SetDecorFitsSystemWindows(false); Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen); if (wicController != null) { wicController.Hide(WindowInsets.Type.Ime()); wicController.Hide(WindowInsets.Type.NavigationBars()); wicController.Hide(WindowInsets.Type.SystemOverlays()); wicController.Hide(WindowInsets.Type.StatusBars()); wicController.Hide(WindowInsets.Type.MandatorySystemGestures()); wicController.Hide(WindowInsets.Type.CaptionBar()); } #pragma warning restore CA1416 } else { #pragma warning disable CS0618 Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen); Window.DecorView.SystemUiVisibility = (StatusBarVisibility)(SystemUiFlags.Fullscreen | SystemUiFlags.HideNavigation | SystemUiFlags.Immersive | SystemUiFlags.ImmersiveSticky | SystemUiFlags.LayoutHideNavigation | SystemUiFlags.LayoutStable | SystemUiFlags.LowProfile); #pragma warning restore CS0618 } } } protected override void OnCreate( Bundle bSavedInstanceState) { base.OnCreate(bSavedInstanceState); SetWindowLayout(); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
protected override void OnCreate( Bundle bSavedInstanceState) { base.OnCreate(bSavedInstanceState); SetWindowLayout(); //if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.R) //{ // Window.SetDecorFitsSystemWindows(false); // var windowInsetsController = Window.DecorView.WindowInsetsController; // if (windowInsetsController != null) // { // windowInsetsController.Hide(WindowInsetsCompat.Type.NavigationBars()); // } //} //else //{ // var uiOptions = SystemUiFlags.HideNavigation; // Window.DecorView.SystemUiFlags = SystemUiFlags.HideNavigation;// (StatusBarVisibility)uiOptions; //} } private void SetWindowLayout() { if (Window != null) { if (Build.VERSION.SdkInt >= BuildVersionCodes.R) { #pragma warning disable CA1416 IWindowInsetsController wicController = Window.InsetsController; Window.SetDecorFitsSystemWindows(false); Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen); if (wicController != null) { wicController.Hide(WindowInsets.Type.Ime()); wicController.Hide(WindowInsets.Type.NavigationBars()); //wicController.Hide(WindowInsets.Type.SystemOverlays()); wicController.Hide(WindowInsets.Type.StatusBars()); wicController.Hide(WindowInsets.Type.MandatorySystemGestures()); wicController.Hide(WindowInsets.Type.CaptionBar()); } #pragma warning restore CA1416 } else { #pragma warning disable CS0618 // 界面有任何变化时都重新设置全屏 Window.DecorView.SystemUiVisibilityChange += DecorView_SystemUiVisibilityChange; Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen); Window.DecorView.SystemUiFlags = (/*SystemUiFlags.Fullscreen | */SystemUiFlags.HideNavigation /*| SystemUiFlags.Immersive | SystemUiFlags.ImmersiveSticky *//*| SystemUiFlags.LayoutHideNavigation*/ /*| SystemUiFlags.LayoutStable | SystemUiFlags.LowProfile*/); #pragma warning restore CS0618 } } } private void DecorView_SystemUiVisibilityChange(object? sender, Android.Views.View.SystemUiVisibilityChangeEventArgs e) { Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen); Window.DecorView.SystemUiFlags = (/*SystemUiFlags.Fullscreen | */SystemUiFlags.HideNavigation /*| SystemUiFlags.Immersive | SystemUiFlags.ImmersiveSticky*/ /*| SystemUiFlags.LayoutHideNavigation | SystemUiFlags.LayoutStable*/ /*| SystemUiFlags.LowProfile*/); }
-
Windows