我的应用程序中的主页是 TabbedPage
我有三个标签:
支付、配置、维护
其中一个选项卡由设置控制以显示或不显示。当它更改为 false 时,我通过执行以下操作删除选项卡:
tabPage.Children.Remove(ConfigTab);
此删除工作正常。如果我重新打开选项卡,我可以使用以下代码添加选项卡:
tabPage.Children.Add(ConfigTab);
但是它添加在列表的末尾,并且缺少 Navigation 标头:
我查看了使用可以在其中指定索引的 Insert 方法
tabPage.Children.Insert(1,ConfigTab);
但这使应用程序崩溃并显示以下消息:
未处理的异常:Java.Lang.IndexOutOfBoundsException:索引 2 无效,大小为 2
如果我当时检查孩子,它已经在正确的索引处添加了页面
关于如何将新页面动态插入到 TabbedPage 的任何建议?并保留导航?
更新:
我现在已经设法通过执行以下操作使其工作:
var paymentPage = tabPage.Children.FirstOrDefault(p=> p.ClassId == "PaymentNavPage");
var configPage = GetConfigPage();
var maintenancePage = tabPage.Children.FirstOrDefault(p => p.ClassId == "MaintaintNavPage");
// Clear old Tabgs
tabPage.Children.Clear();
// Put pages back
tabPage.Children.Add(paymentPage);
tabPage.Children.Add(configPage);
tabPage.Children.Add(maintenancePage);
如果有更好的方法来使用 Insert 方法然后重置导航堆栈,我仍然感兴趣。
