MAUI怎么实现全屏显示 MAUI沉浸式模式教程

admin 百科 14
MAUI实现沉浸式全屏需分平台处理:Android可隐藏状态栏和导航栏,iOS仅能隐藏状态栏;需配合布局Padding、SafeArea适配及平台服务封装,注意手势、键盘与横竖屏兼容性。

MAUI怎么实现全屏显示 MAUI沉浸式模式教程-第1张图片-佛山资讯网

MAUI 实现全屏显示(即“沉浸式模式”)主要通过平台特定代码控制状态栏和导航栏的可见性,Android 和 iOS 的实现方式不同,Windows/macOS 不支持传统意义上的沉浸式全屏。核心思路是:隐藏系统 UI(状态栏、导航栏),让应用内容铺满整个屏幕,同时避免内容被系统栏遮挡。

Android:隐藏状态栏 + 导航栏(真正沉浸)

在 MAUI 中需通过 Android 平台专属代码 设置 Window 的 DecorView 系统 UI 标志:

  • Platforms/Android/MainActivity.csOnCreate 方法中(确保在 base.OnCreate(savedInstanceState) 之后)添加:

if (Build.VERSION.SdkInt >= BuildVersionCodes.R)
{
    Window.InsetsController?.Hide(WindowInsets.Type.StatusBars() | WindowInsets.Type.NavigationBars());
    Window.InsetsController?.SystemBarsBehavior = Android.Graphics.Insets.SystemBarsBehavior.ShowTransientBarsBySwipe;
}
else
{
    var decorView = Window.DecorView;
    decorView.SystemUiVisibility = (StatusBarVisibility)(SystemUiFlags.Fullscreen
        | SystemUiFlags.HideNavigation
        | SystemUiFlags.ImmersiveSticky
        | SystemUiFlags.LayoutFullscreen
        | SystemUiFlags.LayoutHideNavigation);
}

登录后复制

  • 为防止内容被隐藏的系统栏“顶上去”,需在页面根布局(如 ContentPage)设置:Padding="0",并确保容器(如 GridScrollView)不自动预留系统栏空间;
  • 若需动态切换沉浸模式(如点击按钮进入/退出),可封装上述逻辑为方法,并在需要时调用。

iOS:隐藏状态栏(有限沉浸)

iOS 不允许隐藏底部安全区域(Home Indicator),仅能隐藏顶部状态栏:

标签: android windows app ipad usb mac ai ios macos win 常见问题 键盘事件

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~