MAUI 中无原生顶部 TabView,官方推荐使用 Community Toolkit 的 TabView 实现;也可手写 HorizontalStackLayout + ContentView 切换,或避免误用 Shell TabBar。

MAUI 中没有原生的 TabView 控件——这是常见误解。官方推荐且主流使用的顶部标签页导航方案,是通过 .NET MAUI Shell 的 Tab + TabBar 组合 实现,但默认只支持底部选项卡;若需顶部标签页(类似 Android 的 Material Tabs 或 iOS 的 segmented control 风格),需手动组合或借助第三方库。
顶部标签页不是 Shell 默认行为
Shell 的 TabBar 固定在底部,Tab 内部多个 ShellContent 会自动在顶部生成可滑动的「子选项卡」(iOS/Android 均支持),但这仅限于同一主 Tab 下的页面切换,不是全局顶部导航栏。
例如:
- 主 Tab “天气” → 其下两个
ShellContent:今日、预报 → 顶部会出现两个小标签 - 这个顶部标签是自动渲染的,不可自定义位置(不能移到整个 App 顶部)
- 不支持跨 Tab 的顶部统一导航(比如把“首页”“消息”“设置”全放在顶部)
想实现真正的顶部标签页导航,有三种实用方式
1. 使用 Community Toolkit 的 TabView(推荐)
- 安装
Microsoft.Maui.Controls.CommunityToolkitNuGet 包(v7+) - XAML 中直接使用:
<tabview></tabview>,每个TabViewItem可设 Header(文字/图标/自定义控件)和 Content - 支持滑动切换、指示器颜色、预加载策略、禁用某项等
- 完全跨平台,适配 iOS/Android/macOS,顶部位置由你布局控制(放 StackLayout 顶部即可)
2. 手写顶部 TabBar + ContentView 切换
标签: android app mac ios macos microsoft cos .net
还木有评论哦,快来抢沙发吧~