我想确认是否正确使用Xamarin表单的Prism导航服务。我有一个主详细信息页面,一个样式的导航页面和一堆内容页面。
现在,我正在以下面的方式使用该服务:
var prj = await dataService.GetLwdProject(appState.SelectedProjectId);
var nparam = new NavigationParameters();
nparam.Add("Project", prj);
await NavigateTo("RootPage/StyledNavigationPage/SessionsListPage", nparam);
主详细信息页面是rootpage对象。因此,当用户从此列表页面中选择项目时,正确的方式应为:
var nparma = new NavigationParameters();
nparma.Add("Session", option);
await App.NavigateTo("RootPage/StyledNavigationPage/SessionsListPage?ProjectId=" + option.ProjectId + "/LocationListPage", nparma);
我期望仅将locationListPage添加到导航堆栈中,但是当我使用Android上的硬件返回按钮时,看起来不仅添加了最后一页,还添加了整个路径(所有页面)。因此,这是正确的方式自动构造所需路径吗?
no。导航始终与您打电话给它的位置有关。您现在拥有的内容将导航到您每次创建的整个深链接。只需导航到您的目标导航页/sessionlistPage并传递您的参数即可。但是,在这种情况下,您不会每次都会获得新页面,因为您正在浏览相同的视图,而只是通过不同的状态。