Xamarin使用Route形成Shell导航
如何使用XAML中定义的路线导航。。。 我想从“即将到来”路线导航到“服务详细信息”路线。到目前为止,我已经能够使用下面的导航,但是在servicedetail页面上看不到后退按钮(在屏幕上)。每次我点击后退按钮(物理后退按钮),它就会关闭应用程序Xamarin使用Route形成Shell导航,xamarin,xamarin.forms,Xamarin,Xamarin.forms,如何使用XAML中定义的路线导航。。。 我想从“即将到来”路线导航到“服务详细信息”路线。到目前为止,我已经能够使用下面的导航,但是在servicedetail页面上看不到后退按钮(在屏幕上)。每次我点击后退按钮(物理后退按钮),它就会关闭应用程序 await Shell.Current.GoToAsync($"//servicedetail?param={serviceDetail.Id}"); 这就是我到目前为止设置页面的方式 <FlyoutItem Title="Unison"
await Shell.Current.GoToAsync($"//servicedetail?param={serviceDetail.Id}");
这就是我到目前为止设置页面的方式
<FlyoutItem Title="Unison" Route="main"
FlyoutDisplayOptions="AsSingleItem">
<Tab Title="My Services" Icon="icon.png">
<ShellContent Title="Upcoming" Route="upcoming" ContentTemplate="{DataTemplate local:UpcomingServicePage}" />
<ShellContent Title="Past" ContentTemplate="{DataTemplate local:PastServicePage}" />
</Tab>
</FlyoutItem>
<TabBar>
<Tab>
<ShellContent Route="servicedetail"
Title="Team"
Icon="info.png"
ContentTemplate="{DataTemplate local:ServiceDetailPage}" />
<ShellContent Route="servicedetail2"
Title="Songlist"
Icon="info.png"
ContentTemplate="{DataTemplate local:ServiceDetailPage}" />
</Tab>
</TabBar>
我认为您只是在
ShellContent
上添加路由,它应该被视为导航页面中的根页面,您不能再弹出
尝试修改xaml以将路由
添加到选项卡
和选项卡
:
<TabBar Route="tabbarTest">
<Tab Route="TabTest">
<ShellContent Route="servicedetail"
Title="Team"
Icon="info.png"
ContentTemplate="{DataTemplate local:ServiceDetailPage}" />
<ShellContent Route="servicedetail2"
Title="Songlist"
Icon="info.png"
ContentTemplate="{DataTemplate local:ServiceDetailPage}" />
</Tab>
</TabBar>
如果要转到服务详情2
:
await Shell.Current.GoToAsync($"//tabbarTest/TabTest/servicedetai2?param={serviceDetail.Id}");
阅读文档了解其工作原理
Shell层次结构中的所有项都有一个与之关联的路由。如果
路由不是由开发人员设置的,路由是在
运行时。但是,生成的路由不能保证一致
跨不同的应用程序会话
我认为您只是在
ShellContent
上添加路由,它应该被视为导航页面中的根页面,您不能再弹出
尝试修改xaml以将路由
添加到选项卡
和选项卡
:
<TabBar Route="tabbarTest">
<Tab Route="TabTest">
<ShellContent Route="servicedetail"
Title="Team"
Icon="info.png"
ContentTemplate="{DataTemplate local:ServiceDetailPage}" />
<ShellContent Route="servicedetail2"
Title="Songlist"
Icon="info.png"
ContentTemplate="{DataTemplate local:ServiceDetailPage}" />
</Tab>
</TabBar>
如果要转到服务详情2
:
await Shell.Current.GoToAsync($"//tabbarTest/TabTest/servicedetai2?param={serviceDetail.Id}");
阅读文档了解其工作原理
Shell层次结构中的所有项都有一个与之关联的路由。如果
路由不是由开发人员设置的,路由是在
运行时。但是,生成的路由不能保证一致
跨不同的应用程序会话
当你说看不到按钮时,你是如何点击后退按钮的?你实施了这个计划吗?当应用程序关闭时,是否有任何错误?你能分享stacktrace吗?嘿@JackHua MSFT,我在屏幕上没有看到后退按钮。我指的后退按钮是Android上的物理后退按钮。你能回答我的另外两个问题吗?这里还有官方示例:应用程序关闭时没有错误。行为与没有更多页面可返回一样,因此closesi浏览了Xaminals示例。基本上,我想做一个类似于Xaminals中的“MonkeyStail”页面路由。但是在这个细节页面上,我想要一个选项卡栏导航。我需要回到使用选项卡式页面吗?当你说看不到按钮时,你是如何单击“后退”按钮的?你实施了这个计划吗?当应用程序关闭时,是否有任何错误?你能分享stacktrace吗?嘿@JackHua MSFT,我在屏幕上没有看到后退按钮。我指的后退按钮是Android上的物理后退按钮。你能回答我的另外两个问题吗?这里还有官方示例:应用程序关闭时没有错误。行为与没有更多页面可返回一样,因此closesi浏览了Xaminals示例。基本上,我想做一个类似于Xaminals中的“MonkeyStail”页面路由。但是在这个细节页面上,我想要一个选项卡栏导航。我需要重新使用选项卡页吗?尝试过这个,但仍然是一样的。。。我猜应用程序关闭,因为它正试图从servicedetail>tabtest>Tabbertest返回。。。实际上不是一页。我希望我能从servicedetail>main>Combing返回,但那是完全不同的route@AmitPhilips因此,您希望单击弹出式菜单中的“即将到来”并转到servicedetail。然后你希望在servicedetail上有一个返回按钮,可以返回到包含两个选项卡的detailPage?是的,我在UpcomingServicePage上有一个列表。如果我点击其中一个项目,它需要将我重定向到ServiceDetailPage。点击back/back按钮,我想重定向回UpcomingServicePage上的列表。我之所以将ServiceDetailPage作为shell xaml页面的一部分,是因为该功能而不是使用选项卡式页面。将TabbedPage与Shell一起使用会导致页面扭曲尝试过这一点,但仍然是一样的。。。我猜应用程序关闭,因为它正试图从servicedetail>tabtest>Tabbertest返回。。。这实际上不是一页。我希望我能从servicedetail>main>Combing返回,但那是完全不同的route@AmitPhilips因此,您希望单击弹出式菜单中的“即将到来”并转到servicedetail。然后你希望在servicedetail上有一个返回按钮,可以返回到包含两个选项卡的detailPage?是的,我在UpcomingServicePage上有一个列表。如果我点击其中一个项目,它需要将我重定向到ServiceDetailPage。点击back/back按钮,我想重定向回UpcomingServicePage上的列表。我之所以将ServiceDetailPage作为shell xaml页面的一部分,是因为该功能而不是使用选项卡式页面。将TabbedPage与Shell一起使用会导致页面失真