我正在创建一个Xamarin应用程序,我希望将多个页面组合在一起,MasterDetailPage
和NavigationPage
。
我的MainPage
包含MasterDetailPage
,MasterDetailPage
的主人包含一个视图列表(自定义类,用于存储类类型,要显示的图像和名称等信息)用户可以查看。这些观点都是ContentPage
。单击列表中的项目时,ContentPage
将使用反射进行初始化,然后存储在MasterDetailPage
中。目前,一切都是按照Xamarin的建议制作的。
但其中一个ContentPages
包含ListView
。
选择项目后,ListView
必须打开详细视图,用户必须能够返回ListView
。因为我正在使用Navigation
类并在NavigationPage
内推送页面,如下所示(绑定可以做得更好,但只是为了感受Xamarin):
private async Task Handle_ItemSelected(object sender, Xamarin.Forms.SelectedItemChangedEventArgs e)
{
if (_detail == null)
{
_detail = new Detail();
}
_detail.BindingContext = SelectedTrack;
await Navigation.PushAsync(new NavigationPage(_detail));
}
完成此操作后,后退按钮将呈现在MasterDetailPage
上方。
有什么办法可以在转到ListView
的详细信息页面时删除MasterDetailPage的'汉堡'按钮吗?或者我目前使用错误的工作流程?
答案 0 :(得分:1)
将详细信息页面设置为NavigationPage。
_masterDetailPage.Detail = new NavigationPage(page);
或
MainPage = new MasterDetailPage
{
Master = new MyMasterPage(),
Detail = new NavigationPage(MyHomePage())
});
然后在详细信息视图中,您可以通过以下方式导航到其他页面:
await Navigation.PushAsync(new NavigationPage(_detail));
你会看到后退按钮而不是汉堡包。
查看sample。