MainPage未添加到导航堆栈

时间:2017-05-13 14:03:18

标签: c# android navigation xamarin.forms

我只需调用:

即可启动我的Xamarin.Forms安卓项目
    MainPage = new NavigationPage(new HomePage());

在App.xaml.cs

https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/navigation/hierarchical/

中所述
  

这会导致HomePage ContentPage实例被推送到   导航堆栈,它成为活动页面和根页面   申请书。

但是当我检查堆栈时,它是空的:

enter image description here

这里发生了什么?为什么页面不在堆栈中?

1 个答案:

答案 0 :(得分:2)

我刚刚创建了一个新的XF项目。

我已将主页xml更改为此

<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:Test" x:Class="Test.TestPage">
    <StackLayout>
        <Button Text="How many?" Clicked="Handle_Clicked"/>
        <Label Text="Welcome to Xamarin Forms!" VerticalOptions="Center" HorizontalOptions="Center" />
    </StackLayout>
</ContentPage>

并将其添加到xml.cs

void Handle_Clicked(object sender, System.EventArgs e)
{
    //throw new NotImplementedException();
    Application.Current.MainPage.DisplayAlert("Attention", Navigation.NavigationStack.Count.ToString(), "Ok");
}

我看到NavigationStack的计数是1 ... The counter is correct

更新

对于CarouselPage,我也有相同的结果

<?xml version="1.0" encoding="UTF-8"?>
<CarouselPage xmlns="http://xamarin.com/schemas/2014/forms" 
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
    x:Class="Test.TestPage">
    <ContentPage>
        <StackLayout>
            <Button Text = "how many?" Clicked="Handle_Clicked"/>
            <Label Text="Red" />
            <BoxView Color="Red" VerticalOptions="FillAndExpand" />
        </StackLayout>
    </ContentPage>
    <ContentPage>
        <StackLayout>
            <Label Text="Green" />
            <BoxView Color="Green" VerticalOptions="FillAndExpand" />
        </StackLayout>
    </ContentPage>
    <ContentPage>
        <StackLayout>
            <Label Text="Blue" />
            <BoxView Color="Blue" VerticalOptions="FillAndExpand" />
        </StackLayout>
    </ContentPage>
</CarouselPage>

With CarouselPage