eri*_*rin 4 prism xamarin.forms
(使用Prism 6.1.0-pre6和XF 2.3.0.107)
简介:从TabbedPage导航到ContentPage不会显示工具栏/操作栏.
我从另一个页面导航到TabbedPage(MainPage.xaml).这看起来像这样:
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Or.Console.Views"
xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
prism:ViewModelLocator.AutowireViewModel="True"
x:Class="Or.Console.Views.MainPage">
<local:APage/>
<local:BPage/>
<local:CPage/>
</TabbedPage>
Run Code Online (Sandbox Code Playgroud)
在APage的ViewModel中,我正在打电话
_navigationService.NavigateAsync("DetailsPage");
Run Code Online (Sandbox Code Playgroud)
DetailsPage只是一个ContentPage,我希望它会显示顶部的后退按钮和操作栏,但事实并非如此.
我猜这是因为Prism不知道tab子页面,只知道TabbedPage本身.
我已经尝试使用Prism注册选项卡子页面,但这似乎不起作用.还尝试在NavigationPage中包装每个tab子项,但这会带来一些带有重复工具栏的奇怪行为.
从标签内容导航的正确方法是什么?
编辑:回应Brian Lagunas的回答,我尝试将TabbedPage包装在NavigationPage中,所以当我导航到它时,我正在调用
_navigationService.NavigateAsync("DeviceNavWrapper/MainPage");
Run Code Online (Sandbox Code Playgroud)
EDIT2:我的案例中的解决方案最终我需要从appage调用NavigateAsync并将useModalNavigation设置为false.所以现在APage有这个:
_navigationService.NavigateAsync("DetailsPage", null, false);
Run Code Online (Sandbox Code Playgroud)
获取顶部后退按钮的唯一方法是将页面嵌套在NavigationPage中.这是标准的Xamarin.Forms行为.所以你有几个选择.一种是将您的APage包装在NavigationPage中.然后,当您从APageViewModel调用NavigateAsync("DetailsPage")时,它将按您的意愿工作.
编辑:如果要导航到完全不同的页面并替换TabbedPage,请确保TabbedPaged包装在NavigationPage中,并从TabbedPageViewModel导航.
| 归档时间: |
|
| 查看次数: |
1543 次 |
| 最近记录: |