【发布时间】:2016-04-05 13:51:05
【问题描述】:
所以我得到了 Page must not already have a parent 异常。当我尝试从一个页面导航到另一个已包含在另一个选项卡中的页面时,就会发生这种情况。在我将页面加载到 TabbedPage 本身之前,我将它们放在一个名为 pages 的列表中,这显然是 TabbedPage 从中获取其子级的地方。我也试图让这个列表与我的导航按钮一起使用。但是每当我尝试使用它们时,我都会遇到异常。这是我加载页面的方式:
private int pageNavCount = 0;
private list<ContentPage> pages = nwe List<ContentPage> (0);
public MainCPage ()
{
Create ();
Children.Add(pages[0]);
Children.Add(pages[1]);
Children.Add(pages[2]);
}
这是我将页面放入列表的方式:
pages.Add (new ContentPage {
Title="Start Pagina",
BackgroundImage="@drawable/background.jpg",
Content = new StackLayout {
Padding = 50,
BackgroundColor = Color.Black,
Opacity = 0.75,
Children = {
//The controls and stuff
}
}
});
这就是我如何使用带有导航按钮的页面列表:
private void NavButtonNext_Clicked (object sender, EventArgs e)
{
pageNavCount++;
this.Navigation.PushAsync(pages[pageNavCount]);
}
private void NavButtonPrev_Clicked (object sender, EventArgs e)
{
pageNavCount--;
this.Navigation.PushAsync(ages[pageNavCount]);
}
当我尝试按下按钮时,我得到“页面必须没有父页面”异常。 而且我不想最终为每个页面制作新按钮!有人可以告诉我我在这里做错了什么吗?
【问题讨论】:
-
谢谢,但我已经看过那个页面了,但我想将我的页面列表与我的导航按钮一起使用,因为我不想手动添加它们!
-
目前还不清楚您要达到的目标。单击导航按钮时,是否要切换到已包含在另一个选项卡中的另一个页面?还是要在已选择的同一选项卡中导航?
-
我想导航到已经包含在另一个选项卡中的另一个页面,正如您在我发布的代码中看到的那样。我认为这可以工作
-
只是一个旁注,但您应该能够删除图像路径的“@drawable/”部分。这是 Android 特有的,会阻止您的代码在 iOS 和 WinPhone 上运行。如果您只是将图像指定为“background.jpg”,那么在 Android 上它将自动在正确的可绘制文件夹中查找。
标签: c# android xamarin xamarin.forms