如何删除白色空间?

时间:2016-12-27 19:09:58

标签: c# xaml xamarin.forms emulation

当我选择成功和开发时,跟踪屏幕是跟随但在菜单中没有这样的空间,但从菜单到试用页面,这两者之间是主页

[enter image description here [Image Dashboard 1

我想在白色中删除此空间,但我没有在内容页面中添加填充,我不知道该怎么做,但我添加了NavigationPage.HasNavigationBar=true,但我无法在NavigationBar之前控制。 此外,如果我向内容页面添加填充,则仅在NavigationBar之后修改。

我注意到如果改变了api 19的模拟器这个空间在白色中不存在。 The screenshots are, on the left: 5.2 Marshmallow(6.0.0)XXHDPI Phone (Android 6.0 -Api 23) and right is: 5 Kitkat (4.4) XXHDPI Phone (Andoid 4.4 - API 19)

这是我的代码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"
             x:Class="DefinityFirst.Mobile.Pages.SuccessAndDev.Dashboard"
             xmlns:ctrl="clr-namespace:DefinityFirst.Mobile.Pages.SuccessAndDev.Accordion;assembly=DefinityFirst.Mobile"
             Title="Trails"

         NavigationPage.HasNavigationBar="true"
             xmlns:control="clr-namespace:DefinityFirst.Mobile.Pages.SuccessAndDev;assembly=DefinityFirst.Mobile"

               >
  <!--<ContentPage.Padding>
  <OnPlatform x:Key="GeneralPadding2"
                        x:TypeArguments="Thickness"
                        iOS="10"
                        Android="0,10,0,0"
                        WinPhone="15"/>
  </ContentPage.Padding>-->
  <!--<ContentPage.Padding>
    <OnPlatform x:TypeArguments="Thickness" iOS="20, 40, 20, 20" Android="20, 20, 20, 20" WinPhone="20, 20, 20, 20" />
  </ContentPage.Padding>-->
  <ContentPage.Content>


    <ContentView>
      <!--CONTENEDOR TRAIL; LEVEL; PROGRESBAR-->
      <StackLayout BackgroundColor="#F5F5F5">
        <Frame Padding="3,1,1,2.5"  HasShadow="True" Margin="10">
          <StackLayout BackgroundColor="#E1E1E1">
            <StackLayout Orientation="Vertical" BackgroundColor="#1F549D" Padding="5,0,0,0">
              <StackLayout Orientation="Vertical"  Padding="5,5,5,5" x:Name="stTrails" BackgroundColor="White">
                <Label Text="{Binding Name}" TextColor="#FF020202"  FontSize="18" FontAttributes="Bold"/>
                <StackLayout Orientation="Horizontal"  x:Name="nameLevel">
                  <Label Text="{Binding Name}" TextColor="#FF020202" FontSize="16" HorizontalOptions="StartAndExpand"/>
                  <Image Source="mayorq.png"  HorizontalOptions="EndAndExpand"/>
                </StackLayout>
                <StackLayout Orientation="Vertical">
                  <ProgressBar  Progress="{Binding ProgressLevel}"   WidthRequest="500" HeightRequest="15"  HorizontalOptions="StartAndExpand"  x:Name="progresBar"/>
                  <!--<control:CustomProgressBar x:Name="progressBar2" Progress=".02"  />-->
                </StackLayout>
              </StackLayout>
            </StackLayout>
          </StackLayout>
        </Frame>

        <StackLayout Orientation="Horizontal" Padding="4,1,1,2.5">
          <Label  Text="Item List" FontSize="15.8" HorizontalOptions="StartAndExpand"  Margin="10"/>
          <Picker x:Name="pickerStatusFilter"  Title="Filter by status"  HorizontalOptions="EndAndExpand" TextColor="#FF020202"/>
        </StackLayout>
        <!--<BoxView/>
      <StackLayout Orientation="Horizontal" HorizontalOptions="FillAndExpand" Spacing="50">
        <Button Text="a" HorizontalOptions="FillAndExpand" TextColor="{StaticResource MainColor}" BackgroundColor="Aqua"/>
        <Button Style="{StaticResource MainButton}" Text="b"/>
        <Button Text="c" HorizontalOptions="FillAndExpand"/>
      </StackLayout>-->
        <!--<StackLayout  Orientation="Horizontal">
      </StackLayout>-->
        <!--ACCORDION-->
        <StackLayout Padding="0,0,0,0" BackgroundColor="White">
          <ScrollView>
            <ctrl:Accordion x:Name="SecOne" FirstExpaned = "true"/>
          </ScrollView>
        </StackLayout>
      </StackLayout>
    </ContentView>


  </ContentPage.Content>
</ContentPage>

母版页:

<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
                  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                  x:Class="DefinityFirst.Mobile.Pages.SuccessAndDev.MasterPage"
                  xmlns:pages="clr-namespace:DefinityFirst.Mobile.Pages.SuccessAndDev;assembly=DefinityFirst.Mobile"
                  NavigationPage.HasNavigationBar="false">
    <MasterDetailPage.Master>
        <pages:MenuPage x:Name="menuPage" />
    </MasterDetailPage.Master>
    <MasterDetailPage.Detail>
        <NavigationPage x:Name="Navigator" BarBackgroundColor="{StaticResource MainColor}">
            <x:Arguments>
                <pages:Dashboard/>
            </x:Arguments>
        </NavigationPage>
    </MasterDetailPage.Detail>
</MasterDetailPage>

2 个答案:

答案 0 :(得分:1)

我无法使用最新的Xamarin.Forms 2.3.3.175 MasterDetailPage重现此问题。 API 19和API 23+都没有显示图像中显示的任何额外空间。试试here中的示例代码,看看是否有同样的问题。如果没有,我怀疑应用程序的实现还有其他问题。使用MD页面的示例:

<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" 
                  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
                  xmlns:local="clr-namespace:MasterDetailPageNavigation;assembly=MasterDetailPageNavigation"
                  x:Class="MasterDetailPageNavigation.MainPage">
  <MasterDetailPage.Master>
    <local:MasterPage x:Name="masterPage" />
  </MasterDetailPage.Master>
    <MasterDetailPage.Detail>
        <NavigationPage>
            <x:Arguments>
                <local:ContactsPage />
            </x:Arguments>
        </NavigationPage>
    </MasterDetailPage.Detail>
</MasterDetailPage>

如果您可以使用更多关于如何实施MDP的代码更新您的帖子,我将会查看并更新我的答案。

答案 1 :(得分:0)

我也遇到过这个问题, 现在我反编译xamarin,并找到MasterDetailPageRenderer-&gt; SetElement(), 如果sdk&gt; = 21,则设置TopPadding = GetStatusBarHeight(); 但是我找到了xamarin的来源,它改变了。 我想很快就会被修改。