Xamarin.Forms TabbedPage

时间:2018-07-25 08:07:30

标签: c# xamarin.forms xamarin.ios xamarin.android 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:

iOS

Android:

Android

如何减少Android的tabbpage中显示的空白蓝色空间?

要减少的蓝色空间:

Blue space to reduce

对不起,我至少需要10个信誉才能发布图像。

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

获得此空间的原因是因为您的常规内容页面上包装了一个导航页面

做这样的事情会删除您的空间:

Mainpage= new StartPage();

答案 2 :(得分:0)

您可以将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">
...

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