2017-02-21 6 views
0

У меня была своя доля «то, что f% $ @» Xamarin формирует ошибки. Но эта вершина торчит. Я потратил около 3 часов, пытаясь понять, почему эта страница только устанавливается на высоту 504, и я ничего не делаю, кажется, исправил ее. Буквально есть пустая страница, как так:Высота ContentPage устанавливается на 504?

<?xml version="1.0" encoding="utf-8" ?> 
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
      xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
      xmlns:controls="clr-namespace:XamarinMobile.Controls;assembly=XamarinMobile" 
      xmlns:local="clr-namespace:XamarinMobile.Classes;assembly=XamarinMobile" 
      xmlns:converters="clr-namespace:XamarinMobile.Converters;assembly=XamarinMobile" 
      xmlns:viewModels="clr-namespace:XamarinMobile.ViewModels;assembly=XamarinMobile" 
      xmlns:customRenderers="clr-namespace:XamarinMobile.CustomRenderers;assembly=XamarinMobile" 
      x:Class="XamarinMobile.CommentsPage"> 

     <Label Text="Test"></Label> 

    </ContentPage> 

И я получаю этот результат:

enter image description here

Буквально это идентично другим страницам, которые не имеют этой проблемы. Какие-нибудь идеи? Любой способ заставить его быть минимальной высотой экрана? Так раздражает.

+0

ли вы проверить файл на designer.cs? – MiltoxBeyond

+0

Я проверил его для чего? – jdmdevdotnet

+0

Все, что может быть специально задано в генерируемом коде. В основном поиск '.Height =' – MiltoxBeyond

ответ

0

Итак, проблема заключалась в том, что я не вызывал метод, который мне нужно было вызвать.

NavigationPage.SetHasNavigationBar

https://developer.xamarin.com/api/member/Xamarin.Forms.NavigationPage.SetHasNavigationBar/p/Xamarin.Forms.BindableObject/System.Boolean/

Поведение это странно. Он «выделяет» пространство для панели навигации, если вы не укажете его вообще. Вы могли бы подумать, что значение по умолчанию будет ложным, но похоже, что значение по умолчанию равно true. Настройка это ложное исправили проблему:

Xamarin.Forms.NavigationPage.SetHasNavigationBar(this, false);

0

Вы можете вручную установить высоту макета в соответствии с экраном.

App.ScreenWidth = (int)UIScreen.MainScreen.Bounds.Width; 
App.ScreenHeight = (int)UIScreen.MainScreen.Bounds.Height; 

Затем установите результаты относительной или stacklayout на высоту/ширину. Я думаю, вам было бы лучше взглянуть на https://developer.xamarin.com/guides/xamarin-forms/user-interface/layouts/ и использовать, возможно, макет stacklout с вертикальной опцией, установленной для заполнения. Я ожидаю, что это будет соответствовать высоте экрана.

+0

Нет, 'App.ScreenHeight' установлен правильно. На самом деле, я уже делаю этот код, который у вас есть. Я установил 'HeightRequest' и' MinimumHeightRequest' в 'App.ScreenHeight' (который является 568 при отладке), а затем как-то он устанавливает его в 504. – jdmdevdotnet

Смежные вопросы