请考虑以下 Xamarin.Forms Shell XAML:
<TabBar>
<Tab Title="Page1" Route="page1" Icon="page1.png">
<ShellContent ContentTemplate="{DataTemplate local:Page1}" />
</Tab>
<Tab Title="Page2" Route="page2" Icon="page2.png">
<ShellContent ContentTemplate="{DataTemplate local:Page2}" />
<ShellContent Route="page2a" ContentTemplate="{DataTemplate local:Page2A}" />
</Tab>
<Tab Title="Page3" Route="page3" Icon="page3.png">
<ShellContent ContentTemplate="{DataTemplate local:Page3}" />
</Tab>
</TabBar>
这会产生 3 个底部选项卡。在第 2 页上还有两个顶部选项卡。
我可以通过以下呼叫成功导航:
.GoToAsync("//page1")
和.GoToAsync("//page2/page2a")
我想要做的是将 Page2A 作为被推送到 Page2 选项卡顶部的页面。因此,当我调用GoToAsync("//page2/page2a")
应用程序时,导航到 Page2 选项卡,但在顶部显示 Page2A 页面。我不希望顶部选项卡,而是 Page2A NavBar 将具有可见的后退按钮,并且当按下 Page2A 时将从堆栈中弹出并且 Page2 将再次可见。
有没有办法用 Shell 来实现这一点,也许是通过调整我的 XAML?
目前我只是使用旧PushAsync(..)
方法,但不利用 Shell 的导航功能似乎很可惜。