NavigationPage Wrapping 导致状态栏出现错误

NavigationPage Wrapping causing bug in status bar

提问人:Greggz 提问时间:1/8/2018 最后编辑:Greggz 更新时间:1/24/2018 访问量:488

问:

当我尝试添加到我的NavigationCropsListPage

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
       xmlns:local="clr-Balloney.Views"
       x:Class="Balloney.Views.MainPage">

   <NavigationPage Icon="carrot.png">
    <x:Arguments>
        <local:CropListPage/>
    </x:Arguments>
   </NavigationPage> 
   <ContentPage Icon="search.png"></ContentPage>

 </TabbedPage>

然后它导致..

enter image description here

如果我不尝试将它包裹在一个 中,它会保持正常NavigationPage

enter image description here

知道是什么导致了这种行为吗?在尝试解决这个问题并硬编码 Android 中状态栏的大小之前,我正在寻找一种方法来理解问题并防止它。谢谢

MainPage.xaml现在正在工作

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
           xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
           xmlns:local="clr-namespace:Balloney.Views"
           x:Class="Balloney.Views.MainPage">

  <local:CropListPage Icon="carrot.png"/>
  <ContentPage Icon="search.png"></ContentPage>

</TabbedPage>

和 xamlCropList

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="Balloney.Views.CropListPage">
<ListView ItemsSource="{Binding CropsList}" ItemTapped="OnCropTapped">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout Orientation="Horizontal">
                    <Image Source="{Binding ImageUrl}" VerticalOptions="Fill" WidthRequest="50"/>
                    <StackLayout HorizontalOptions="StartAndExpand">
                        <Label Text="{Binding Specie.Name}"/>
                        <Label Text="{Binding HarvestDate}" FontSize="Micro" TextColor="Black"/>
                    </StackLayout>
                    <Label Text="{Binding Location}" FontSize="Micro" TextColor="Chocolate" />
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>
</ContentPage>

编辑:该错误似乎与我内部有关,因为当我切换到页面时没有错误。ListViewCropListPageSearch icon

enter image description here

Xaml Xamarin.Forms 导航

评论

0赞 Steve Chadbourne 1/8/2018
我认为导航页面应该包装选项卡式页面,而不是选项卡式页面中的内容页面。
0赞 Greggz 1/8/2018
@SteveChadbourne 如果我尝试,结果是一样的。但是我遵循了文档,我做对了。它还可以包装导航页面
0赞 Greggz 1/8/2018
@SteveChadbourne 检查一下 developer.xamarin.com/guides/xamarin-forms/...
0赞 Steve Chadbourne 1/11/2018
是的,你是对的。事实上,它特别说不要将点击的页面包装在导航页面中!

答:

1赞 Steve Chadbourne 1/11/2018 #1

可能是因为您已将裁剪列表页面包装在导航页面中,因此当选择该页面时,您会得到上面的导航栏空间。

如果选择第二个选项卡,空间会消失吗?

如果将标题添加到裁剪页面,它会出现在大绿色区域中吗?

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
       xmlns:local="clr-namespace:Chronocrops.Views"
       x:Class="Chronocrops.Views.MainPage">

   <NavigationPage Icon="carrot.png" Title="Crop List">
    <x:Arguments>
        <local:CropListPage/>
    </x:Arguments>
   </NavigationPage> 
   <ContentPage Icon="search.png"></ContentPage>

 </TabbedPage>

评论

0赞 Greggz 1/11/2018
是的,你是对的,在它保持正常。不,里面的遗骸。我会上传一张图片。关于为什么会发生这种情况的任何想法只是因为我有一个页面内部?Search icon pageTitleListView
4赞 Nick Peppers 1/11/2018 #2

第一张图片中的额外空间是默认情况下显示导航栏的结果,导航栏可以隐藏。NavigationPage

下面是一个如何隐藏它的示例。