【发布时间】:2019-07-17 11:02:43
【问题描述】:
我有一个使用新 AppShell 的 xamarin 表单项目。我有一个带有一些菜单项的弹出菜单。其中一个菜单项被称为例如MyComputer。打开它会显示文件夹列表。当我单击一个文件夹时,会打开一个新页面并再次显示文件夹列表 - 依此类推 - 就像嵌套文件夹一样。不幸的是,当使用新的await Shell.Current.GoToAsync("folder"); 打开文件夹页面中的文件夹时,没有任何反应。不执行导航。似乎不允许将同一页面推送到导航堆栈上。然而,这适用于“旧”导航myPage.Navigation.PushAsync(folderPage);。因为AppShell 的原始文档不包含对嵌套视图的限制,所以我认为我遗漏了一些东西。
我的AppShell.xaml
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems" Route="app">
<ShellContent Title="MyComputer" Route="myComputer" ContentTemplate="{DataTemplate views:MyComputerPage}"/>
</FlyoutItem>
注册我的文件夹页面:
Routing.RegisterRoute("folder", typeof(FolderPage));
从MyComputerPage 调用文件夹页面(可行):
await Shell.Current.GoToAsync("folder?name=myFolder1");
从FolderPage调用文件夹页面(这不起作用,没有任何反应,没有执行导航):
await Shell.Current.GoToAsync("folder?name=myFolder1b");
我想这样导航:
MyComputerPage -> FolderPage -> FolderPage -> FolderPage -> ...
只是为了更好地理解文件夹结构的外观:
- 我的文件夹 1
- 我的文件夹1a
- myFolder1aX
- myFolder1aY
- myFolder1aZ
- myFolder1b
- myFolder1c
- 我的文件夹1a
- 我的文件夹2
- 我的文件夹3
编辑:
@Junior Jiang - MSFT 给你:
【问题讨论】:
-
你试试
Absolute routes? docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/… -
您的意思是使用
//app/folderpage导航?是的,我已经试过了。但无论如何我不想从根路由。导航堆栈应该保留。 -
好吧,明白了。能否在运行时显示带有 FlyoutItem 的屏幕截图?
-
@Junior Jiang - MSFT 查看编辑
-
感谢更新。然后在单击 MyComputer 时,您想要导航到哪个视图。
标签: forms shell xamarin view navigation