.NET MAUI MenuBarItem无法显示/工作问题求助
确认Android版本要求:MenuBarItem在Android平台仅支持Android 11(API 30)及以上系统,若测试设备或模拟器系统版本低于API30,控件不会显示。去项目属性里确认目标Android版本≥30,同时检查测试设备的系统版本。
检查MenuBar的结构层级:必须保证MenuBar是ContentPage的直接子元素,不能嵌套在Grid、StackLayout这类布局容器里。正确的XAML结构示例:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="YourApp.MainPage"> <MenuBar> <MenuBarItem Text="主菜单"> <MenuItem Text="设置" /> <MenuItem Text="关于" /> </MenuBarItem> </MenuBar> <!-- 页面其他内容 --> </ContentPage>
验证AppShell的配置逻辑:如果用AppShell托管页面,确保AppShell是App的MainPage,且对应的ShellContent页面正确包含MenuBar——不要给ContentPage额外套NavigationPage,也别在AppShell级别定义MenuBar(Android上MenuBar是页面级控件)。
升级MAUI SDK版本:你当前使用的7.0.92版本存在Android端MenuBar显示的已知bug,建议升级到.NET MAUI 7.0的最新补丁版本(比如7.0.105及以上),或者直接切换到.NET 8 MAUI,新版本已经修复了不少这类UI兼容性问题。
换物理设备测试:部分Android模拟器的系统镜像可能存在渲染异常,尤其是低版本模拟器。拿一台Android 11+的物理设备测试,排除模拟器本身的问题。
排查主题样式干扰:检查项目
Resources/Styles/Styles.xaml里的ContentPage默认样式,看是否设置了过大的Padding把MenuBar顶出可视区域,或者MenuBar文字颜色和背景色一致导致看不见。可以临时给MenuBarItem设置TextColor="Red"来快速排查。
内容的提问来源于stack exchange,提问作者Bob

