MAUI首次启动引导页通过Preferences记录状态、CarouselView实现滑动、OnAppearing或OnStart中安全导航三步实现:用Preferences.Set/Get控制展示逻辑,CarouselView绑定数据并配IndicatorView,避开构造函数导航陷阱。
MAUI本身不内置“首次启动引导页”(Onboarding)组件,但你可以用纯XAML页面 + 本地存储判断 + 导航控制三步实现。关键不是做多炫的动画,而是准确识别“是不是第一次打开”,并只在首次跳转到引导页。
MAUI推荐用Microsoft.Maui.Storage.Preferences存一个布尔值,轻量、跨平台、无需额外依赖:
OnStart()或主页面OnAppearing()中读取Preferences.Get("has_seen_onboarding", false)
false,就导航到你的引导页(比如Navigation.PushAsync(new OnboardingPage()))Preferences.Set("has_seen_onboarding", true)
不用第三方库,MAUI原生CarouselView就能做流畅翻页:
List数据源,每项含标题、描述、图片路径IndicatorView加底部小圆点,设置CarouselView.IndicatorView关联即可IsSwipeEnabled="False",改用底部“下一步”按钮控制CurrentItem
别在App.xaml.cs构造函数里判断——此时Application.Current.MainPage可能还没初始化,导航会失败:
MainPage.xaml.cs的OnAppearing()里检查并跳转(确保页面已加载)App.xaml.cs的OnStart()里设置MainPage = new NavigationPage(new OnboardingPage()),但记得之后再切回正常首页OnboardingPage重写OnBackButtonPressed()并返回true
基本上就这些。不复杂但容易
忽略的是存储时机和导航上下文——只要Preferences写对位置、导航调用在页面就绪后,引导页就稳了。