Xamarin中TabbedPage登录跳转指定子页保留底部标签栏问题咨询
解决方案
你之前跳转后看不到底部标签栏,是因为直接加载了单独的Page4,没有加载承载所有标签的MainView容器;而只加载MainView默认会显示第一个标签,所以需要手动指定选中的标签索引。
具体实现代码如下:
if (response.IsSuccessStatusCode) { var responseBody = await response.Content.ReadAsStringAsync(); // 实例化主Tab容器 var mainTab = new MainView(); // 标签索引从0开始计数,Page4是第4个对应索引为3 mainTab.SelectedIndex = 3; // 如果需要支持子页面的导航跳转,就套一层NavigationPage App.Current.MainPage = new NavigationPage(mainTab); // 不需要子页面导航的话直接赋值即可:App.Current.MainPage = mainTab; }
补充说明
- 如果后续需要在任意标签的子页面内切换选中的标签,可以通过父容器获取TabbedPage实例修改索引:
// 写在任意Tab子页面的代码中 var tabContainer = this.Parent as TabbedPage; if (tabContainer != null) { // 切换到对应索引的标签即可 tabContainer.SelectedIndex = 3; }
- 登出逻辑无需调整,直接设置
App.Current.MainPage = new LoginPage()即可正常回到登录页。
内容的提问来源于stack exchange,提问作者Chim Di Tru
相关产品推荐
相关产品推荐

