Xamarin.forms 主页面详细信息页未显示在内容页之后
我在xamarin工作。我正在创建一个android应用程序。在我的应用程序中,我必须使用菜单。所以我用母版细节页来显示菜单。它工作得很好 但我的问题是,在显示母版详细信息页面之前,我必须打开一个不包含菜单的内容页面。所以我拿了一个内容页并设置了它。但当我在内容页之后运行应用程序时,母版详细信息页不会出现。代码正在成功运行,但母版页未显示Xamarin.forms 主页面详细信息页未显示在内容页之后,xamarin.forms,master-detail,Xamarin.forms,Master Detail,我在xamarin工作。我正在创建一个android应用程序。在我的应用程序中,我必须使用菜单。所以我用母版细节页来显示菜单。它工作得很好 但我的问题是,在显示母版详细信息页面之前,我必须打开一个不包含菜单的内容页面。所以我拿了一个内容页并设置了它。但当我在内容页之后运行应用程序时,母版详细信息页不会出现。代码正在成功运行,但母版页未显示 有谁能告诉我在显示简单内容页之后如何显示母版详细信息页吗?给你一个窍门!假设您有一个登录页面,经过身份验证后,您将转到根页面,这是一个masterDetail
有谁能告诉我在显示简单内容页之后如何显示母版详细信息页吗?给你一个窍门!假设您有一个登录页面,经过身份验证后,您将转到根页面,这是一个masterDetailPage 从下面的代码中得到提示 根页面:
namespace LoginNavigation
{
public class RootPage:MasterDetailPage
{
MenuPage menuPage;
public RootPage () {
ToolbarItems.Add(new ToolbarItem("Filter", "ring.png", async () => {
var page = new ContentPage();
var result = await page.DisplayAlert("Title", "Message", "Accept", "Cancel");
Debug.WriteLine("success: {0}", result);
}));
menuPage = new MenuPage ();
menuPage.Menu.ItemSelected += (sender, e) => NavigateTo (e.SelectedItem as MenuItemForMaster);
//Master = new MasterMenu();
Master = menuPage;
Detail = new NavigationPage (new TimeSheet()){
BarBackgroundColor = Color.FromHex("008dce"),BackgroundColor = Color.FromHex("008dce")
};
}
void NavigateTo (MenuItemForMaster menu) {
if (menu == null)
return;
Page displayPage = (Page)Activator.CreateInstance (menu.TargetType);
//Detail = displayPage;
Detail = new NavigationPage (displayPage) { BarBackgroundColor = Color.FromHex("008dce"),BackgroundColor = Color.FromHex("008dce")};
menuPage.Menu.SelectedItem = null;
IsPresented = false;
}
}
}
所以诀窍是,获取App类的当前实例并操作它的Mainpage属性。给你一个诀窍!假设您有一个登录页面,经过身份验证后,您将转到根页面,这是一个masterDetailPage 从下面的代码中得到提示 根页面:
namespace LoginNavigation
{
public class RootPage:MasterDetailPage
{
MenuPage menuPage;
public RootPage () {
ToolbarItems.Add(new ToolbarItem("Filter", "ring.png", async () => {
var page = new ContentPage();
var result = await page.DisplayAlert("Title", "Message", "Accept", "Cancel");
Debug.WriteLine("success: {0}", result);
}));
menuPage = new MenuPage ();
menuPage.Menu.ItemSelected += (sender, e) => NavigateTo (e.SelectedItem as MenuItemForMaster);
//Master = new MasterMenu();
Master = menuPage;
Detail = new NavigationPage (new TimeSheet()){
BarBackgroundColor = Color.FromHex("008dce"),BackgroundColor = Color.FromHex("008dce")
};
}
void NavigateTo (MenuItemForMaster menu) {
if (menu == null)
return;
Page displayPage = (Page)Activator.CreateInstance (menu.TargetType);
//Detail = displayPage;
Detail = new NavigationPage (displayPage) { BarBackgroundColor = Color.FromHex("008dce"),BackgroundColor = Color.FromHex("008dce")};
menuPage.Menu.SelectedItem = null;
IsPresented = false;
}
}
}
所以诀窍是,获取App类的当前实例并操作它的Mainpage属性。答案将取决于是否要维护导航堆栈。如果要将新页面添加到当前导航堆栈,则需要在内容页面中执行以下操作:
((NavigationPage)Parent).PushAsync(newPage);
如果要使新页面成为导航堆栈的根,则需要执行以下操作:
((App) Parent).MainPage = newPage;
如果这不起作用,请发布您的代码。答案将取决于您是否要维护导航堆栈。如果要将新页面添加到当前导航堆栈,则需要在内容页面中执行以下操作:
((NavigationPage)Parent).PushAsync(newPage);
如果要使新页面成为导航堆栈的根,则需要执行以下操作:
((App) Parent).MainPage = newPage;
如果这不起作用,请发布您的代码。我尝试过,但仍然不起作用。请您更新我应该在App.cs中编写的特定代码,以便我可以在内容页之后在母版详细信息页上移动。我尝试了,但仍然无法工作。请您更新我应该在App.cs中编写的特定代码,以便我可以在内容页之后在母版详细信息页上移动。谢谢Christine,它现在可以工作了。我使用了App.Current.MainPage=newPage;谢谢Christine,现在开始工作了。我使用了App.Current.MainPage=newPage;