在Xamarin表单Prism MasterDetails页面中导航时出现白屏问题

时间:2019-02-07 04:34:34

标签: xamarin xamarin.forms navigation prism master-detail

我已经使用xamarin形式的棱镜实现了MasterDetail页面,并且我的应用程序中包含以下页面。 1)硕士 2)家 3)员工 4)个人资料

-登录后,最初将App设置为Master-Home(详细信息页面)页面。从主页,我使用以下代码导航到Employee(详细信息页面):

  await _navigationService.NavigateAsync("NavigationPage/Employee");

-从Employee页面,我通过使用代码单击一名员工来导航到Profile(内容页面-非详细信息页面):

 await _navigationService.NavigateAsync("Profile", lstparam, null, false);

-在个人资料页面中单击主页按钮后,我要导航到“主主页”(“详细信息页面”)。但是,它导航到Employee(详细信息页面)。

await _navigationService.GoBackToRootAsync();

通过调试检查导航堆栈,它仅显示Employee(详细信息页面)页面。还尝试使用以下代码导航到主页:

await NavigationService.NavigateAsync("/Master/NavigationPage/Home");

上面的代码正在工作,我可以导航到“主页(详细信息页面)”,但导航到“配置文件到主页”时却出现白屏。

附加的屏幕截图。请帮助。谢谢。

MasterPage

Details_Home

Details_Employee

Profile

Whitescreen

2 个答案:

答案 0 :(得分:1)

我最近有一个非常相似的问题,但它不依赖于棱镜。 我想通过绕过登录(ContentPage)并调用主页(“母版和明细页”)来创建自动登录功能。 为此,我必须在应用程序类中调用异步登录服务方法。 依次:

  1. 呼叫异步服务
  2. 致电NavigationService.NavigateAsync

在这种情况下,出现空白页

解决:

  1. 致电NavigationService.NavigateAsync
  2. 呼叫异步服务

答案 1 :(得分:0)

就我而言,是因为我使用了错误的NavigationService而引起的。
我有一个 static Navigator类,该类用于在应用程序(一个简单的包装程序)中管理和记录导航,该类包含名为Instance的属性,类型为{ {1}}是我将其设置为App.xaml.cs的NavigationService

在每个ViewModel上重新分配它(在ViewModelBase的构造函数中)为我修复了白页错误。
希望它能对某人有所帮助!