我的应用程序包含一个全局选项卡栏。其中的选项卡可以更改其顺序,可以删除或添加,也可以在视觉上进行更改。因此我想在运行时更新标签栏。用户不应该被移动到不同的页面,因此导航堆栈在更新时不应该改变。我尝试先清除标签栏的项目,然后添加正确的回它。但是我在使用这种方法时遇到了很多问题,得到了如下异常:Global routes currently cannot be the only page on the stack, so absolute routing to global routes is not supported. For now, just navigate to: MainPage
我认为问题是我清除了标签,因为在那一刻, shell 是空的。
我怎么能有一个动态的标签栏在.net毛伊岛?
AppShell.xaml:
<Shell
x:Class="MauiTestApplication.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
Shell.FlyoutBehavior="Disabled">
<TabBar x:Name="MainTabBar"/>
</Shell>
AppShell.xaml.cs:
public void UpdateTabs()
{
MainTabBar.Items.Clear();
// Create all tabs
// Add all tabs to tabbar via: MainTabBar.Items.Add(TAB);
}
1条答案
按热度按时间9wbgstp71#
我做了一个演示,删除并再次添加标签。
你可以试试下面的代码:
在 AppShell.cs 中
希望有帮助。
创建一个新的TabBar似乎会清空导航堆栈。你可以添加和删除其中的项目,而不是让它为空。
效果: