Обходной файл NavigationPage, вызывающий ошибку в строке состояния

У меня возникает странная ошибка, когда я пытаюсь добавить Navigation в мой CropsListPage

<?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>

И затем это приводит к..

введите описание изображения здесь

Если я не пытаюсь окупить его в NavigationPage, он останется нормальным

введите описание изображения здесь

Любая идея, что вызывает это поведение? Прежде чем пытаться вырвать свой путь из этого и жестко кодировать размер строки состояния в 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>

И CropList xaml

<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>

РЕДАКТИРОВАТЬ: Ошибка, похоже, связана с ListView внутри внутри CropListPage, потому что нет ошибки при переключении на страницу Search icon.

введите описание изображения здесь

Ответ 1

Дополнительное пространство в вашем первом изображении является результатом NavigationPage по умолчанию, показывающего панель навигации, которая может быть скрыта.

Вот пример, как скрыть его.

Ответ 2

Возможно, это связано с тем, что вы нанесли на страницу навигации страницу списка обрезков, поэтому, когда она выбрана, вы получите надводное барное пространство выше.

Если вы выберете вторую вкладку, исчезнет ли пробел?

Если вы добавляете заголовок на страницу обрезки, оно появляется в большом зеленом пространстве?

<?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>