Xamarin Forms Shell FlyoutItem 自定义路由
Xamarin Forms Shell FlyoutItem custom routes
我想创建一个包含 3 个页面的 Xamarin 应用 AboutPage, Page1, Page2.
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。从 Flyout 导航到 Page1 或 Page2 后,我希望将页面推到 AboutPage 的顶部。
如果我使用 GoToAsync() 它可以工作,但我必须注册路由
Routing.RegisterRoute("Page1", typeof(Page1));
await Shell.Current.GoToAsync("//AboutPage/Page1");
我可以覆盖 Flyout 上的 Click 事件以使用哪个路径吗?
有没有更好的解决方案我没有看到?
试试这个方法。
<FlyoutItem ...
>
<Tab ...
Route="AboutPage" >
<ShellContent ...
Route="Page1" />
<ShellContent ...
Route="Page2" />
</Tab>
</FlyoutItem>
感谢 WenxuLi-MSFT 的评论,
我决定使用他的建议,我将覆盖 onbackpressed 行为以导航到想要的页面。
我想创建一个包含 3 个页面的 Xamarin 应用 AboutPage, Page1, Page2. 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。从 Flyout 导航到 Page1 或 Page2 后,我希望将页面推到 AboutPage 的顶部。
如果我使用 GoToAsync() 它可以工作,但我必须注册路由
Routing.RegisterRoute("Page1", typeof(Page1));
await Shell.Current.GoToAsync("//AboutPage/Page1");
我可以覆盖 Flyout 上的 Click 事件以使用哪个路径吗? 有没有更好的解决方案我没有看到?
试试这个方法。
<FlyoutItem ...
>
<Tab ...
Route="AboutPage" >
<ShellContent ...
Route="Page1" />
<ShellContent ...
Route="Page2" />
</Tab>
</FlyoutItem>
感谢 WenxuLi-MSFT 的评论,
我决定使用他的建议,我将覆盖 onbackpressed 行为以导航到想要的页面。