Xamarin.Forms 标签页

Xamarin.Forms TabbedPage

我在这个项目中遇到了一个小问题。这是我的标签页声明:

<?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:JacksCurrencyConverter;assembly=JacksCurrencyConverter"
            x:Class="JacksCurrencyConverter.StartPage"
            x:Name="Children"
            HeightRequest="10" 
            WidthRequest="10">

    <TabbedPage.Children>
        <local:MainPage Icon="currency.png"  Title="Exchange"/>
        <local:FavouritesPage Icon="favourites2.png"  Title="Favourites"/>
        <local:MainPage Icon="statistics2.png" Title="Info"/>
    </TabbedPage.Children>
</TabbedPage>

那么这就是它在 iOS 和 Android 中的样子:

iOS:

Android:

如何减少 Android 标签页中显示的空白蓝色 space?

蓝色space减少:

抱歉,我需要至少 10 个信誉才能 post 张图片。

添加水平和垂直选项,这应该可以修复顶部空白 space。

 <TabbedPage>
     <ContentPage Title="Exchange" 
                  HorizontalOptions="StartAndExpand" 
                  VerticalOptions="Center" Padding="0">
         <local:MainPage Icon="currency.png"  Title="Exchange"/>
     </ContentPage>
     <ContentPage Title="Favourites" 
                  HorizontalOptions="StartAndExpand" 
                  VerticalOptions="Center" Padding="0">
          <local:FavouritesPage Icon="favourites2.png"  Title="Favourites"/>
     </ContentPage>
     <ContentPage Title="Info" 
                  HorizontalOptions="StartAndExpand" 
                  VerticalOptions="Center" Padding="0">
         <local:MainPage Icon="statistics2.png" Title="Info"/>
     </ContentPage>
</TabbedPage>

你得到这个 space 的原因是你有一个导航页面包裹在你的正常内容页面上

这样做会删除您的 space:

Mainpage= new StartPage();

您可以将 NavigationPage.HasNavigationBar="False" 添加到 XAML 中的 TabbedPage 标签。

那么您的代码应该如下所示:

<TabbedPage
 xmlns="http://xamarin.com/schemas/2014/forms"
 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
 xmlns:local="clr-namespace:JacksCurrencyConverter;assembly=JacksCurrencyConverter"
 x:Class="JacksCurrencyConverter.StartPage"
 x:Name="Children"
 HeightRequest="10" WidthRequest="10"
 NavigationPage.HasNavigationBar="False">
...

另一种方法是在页面的构造函数或 OnAppearing 函数中调用 NavigationPage.SetHasNavigationBar(this, false);