Xamarin Forms Shell FlyoutItem 自定义路由
我想创建一个包含 3 个页面 AboutPage、Page1、Page2 的 Xamarin 应用程序。 这 3 个页面使用 FlyoutItem 进行分组,如下所示:
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems" >
<ShellContent Route="AboutPage" Title="About" Icon="icon_about.png" ContentTemplate="{DataTemplate local:AboutPage}" />
<ShellContent Route="Page1" Title="Page1" Icon="icon_about.png" ContentTemplate="{DataTemplate local:Page1}" />
<ShellContent Route="Page2" Title="Page2" Icon="icon_about.png" ContentTemplate="{DataTemplate local:Page2}" />
</FlyoutItem>
我希望应用程序启动后能够登陆 AboutPage,并且我想定义 Page1 的路线> 为 AboutPage/Page1 和 Page2 AboutPage/Page2。从弹出窗口导航到 Page1 或 Page2 后,我希望将页面推送到 AboutPage 的顶部。
如果我使用 GoToAsync() 它可以工作,但我必须注册路线
Routing.RegisterRoute("Page1", typeof(Page1));
await Shell.Current.GoToAsync("//AboutPage/Page1");
我可以覆盖 Flyout 上的 Click 事件来设备要使用的路径吗? 我没有看到更好的解决方案吗?
I want to create a Xamarin App that contains 3 pages AboutPage, Page1, Page2.
The 3 page are grouped using FlyoutItem as follows:
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems" >
<ShellContent Route="AboutPage" Title="About" Icon="icon_about.png" ContentTemplate="{DataTemplate local:AboutPage}" />
<ShellContent Route="Page1" Title="Page1" Icon="icon_about.png" ContentTemplate="{DataTemplate local:Page1}" />
<ShellContent Route="Page2" Title="Page2" Icon="icon_about.png" ContentTemplate="{DataTemplate local:Page2}" />
</FlyoutItem>
I expect the app to land on the AboutPage once started and I want to define the route for Page1 as AboutPage/Page1 and Page2 AboutPage/Page2. Once navigated to Page1 or Page2 from Flyout I want the pages to pushed on top of the AboutPage.
If I used GoToAsync() it works but I have to register the routes
Routing.RegisterRoute("Page1", typeof(Page1));
await Shell.Current.GoToAsync("//AboutPage/Page1");
Can I override Click Event on Flyout to device which path to use?
Is there a better solution I am not seing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
试试这个方法。
Try this way.
感谢 WenxuLi-MSFT 的评论,
我决定使用他的建议,我将覆盖 onbackpressed 行为以导航到想要的页面。
Thanks to WenxuLi-MSFT's comment,
I decided to use his suggestion, I will overrite the onbackpressed Behavior to navigate to the wanted page.