【发布时间】:2020-03-08 08:20:49
【问题描述】:
考虑以下 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 的导航功能似乎很可惜。
【问题讨论】:
标签: xamarin xamarin.forms xamarin.forms.shell