【发布时间】:2017-04-15 05:23:49
【问题描述】:
我的应用程序中的主页是一个 TabbedPage
我有三个标签:
支付、配置、维护
其中一个选项卡由显示与否的设置控制。当它更改为 false 时,我通过执行以下操作删除选项卡:
tabPage.Children.Remove(ConfigTab);
此删除工作正常。如果我重新打开选项卡,我可以使用以下代码添加选项卡:
tabPage.Children.Add(ConfigTab);
但它添加在列表的末尾并且缺少导航标题:
我研究了使用插入方法,我可以在其中指定索引
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 方法然后重置导航堆栈,我仍然感兴趣。
【问题讨论】:
标签: android xamarin.forms tabbedpage