Prism + XF:如何根据应用程序状态导航到不同的视图

时间:2016-10-11 17:02:14

标签: xamarin.forms prism

当我打电话

<body page-section="news"> <div class="royalslider"> This is a slider and it is fullscreen </div> <div id="body-layouts"> This is the body layout </div> </body>

取决于屏幕分辨率,它需要以不同的方式显示视图:

在大屏幕上,它显示当前navigationService.NavigateAsync('MyPage')内的面板(需要在当前Page内创建ContentView),在小屏幕上,它必须导航到{ {1}}

如何用Prism实现这一目标?

编辑:我遇到的问题实际上是如何显示视图。 在小屏幕上,它导航到ContentPage,在大屏幕上,它需要在当前页面中显示Page

我怎样才能做到这一点?我应该创建自己的导航服务并覆盖Page吗?根据视图名称和设备惯用法,我要么使用默认行为导航到它,要么在当前视图中显示视图:

View

1 个答案:

答案 0 :(得分:1)

没有棱镜,你会怎么做?尽管您可以利用不同的Prism功能来简化管理,但您的方法并未发生变化。您可以为要支持的每个设备大小创建一个模块(项目)。然后只根据设备加载所需的模块。这将允许您使用相同的键注册所有视图,并始终导航到相同的键,但根据加载的模块,您将获得不同的页面。这样可以保持ViewModel的清洁。

或者你可以简单地使用good'ol

if (some screensize)
 _navigationService.NavigateAsync("SmallPage");
else
 _navigationService.NavigateAsync("BiggerPage");

我个人会使用模块方法。