MAUI AppShell路由Android正常Windows异常问题求助
问题原因
你同时在AppShell.cs手动注册了HomeMenu路由,又在AppShell.xaml的ShellContent上设置了Route="HomeMenu",重复的路由注册导致Windows平台Shell导航逻辑出现异常,仅更新页面标题但未切换内容,而Android平台对此兼容更好。
修复方案
移除重复路由注册
删除AppShell.cs中这行代码:Routing.RegisterRoute(nameof(HomeMenu), typeof(HomeMenu));ShellContent的Route属性已完成该页面的路由注册,无需手动重复操作。尝试更明确的导航语句
如果上述修改后问题仍存在,可改用全局根路由标识或多级返回的方式:// 全局根路由跳转 await AppShell.Current.GoToAsync("///HomeMenu"); // 多级返回至根页面 await AppShell.Current.GoToAsync("../../..");排查导航栈(辅助验证)
可打印当前导航栈确认结构是否正常:var navStack = AppShell.Current.Navigation.NavigationStack; foreach (var page in navStack) { System.Diagnostics.Debug.WriteLine(page.GetType().Name); }
注意事项
MAUI Shell在不同平台的导航实现存在细微差异,避免重复注册路由是减少跨平台不一致问题的核心原则。//代表当前层级的根路由,///代表全局根路由,在你的场景中使用///HomeMenu能更精准地指定跳转到全局根页面。
内容的提问来源于stack exchange,提问作者pdschuller
相关产品推荐
相关产品推荐

