Как я могу дать динамическое заполнение Entry в формах Xamarin? - PullRequest
0 голосов
/ 14 сентября 2018

Как я могу дать динамическое заполнение для записи в формах Xamarin, которая выглядит одинаково на всех экранах мобильных устройств?Я пытаюсь применить заполнение таким образом, используя EntryRenderer.

Control.SetPadding (20,20,0,0);

На экранах небольшого размера это выглядит идеально, но на экранах большого размера онодействует по-другому и выглядит довольно странно.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

В Xamarin.Essentials nuget есть функция для получения отображаемой информации об устройстве .

При использовании Xamarin.Essentials nuget обязательно следуйте их шагам начала работы .

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

var screenWidth   = DeviceDisplay.ScreenMetrics.Width; // in pixels
var screenHeight  = DeviceDisplay.ScreenMetrics.Height: // in pixels
var screenDensity = DeviceDisplay.ScreenMetrics.Density;

А затем используйте некоторую комбинацию этой информации для установки отступов:

if(screenWidth <= 400)
{
    Control.SetPadding(20,20,0,0);
}
else if(screenWidth > 400 && screenWidth < 500)
{
    Control.SetPadding(30,20,0,0);
}
else if // continue with whatever conditions need checked

Обратите внимание, что я использовал screenWidth в моем примере, но screenDensity может лучше подойти для вашей проблемы.,Возможно, вам придется настроить несколько раз, пока не найдете то, что работает.

0 голосов
/ 14 сентября 2018

Если у вас уже есть пользовательская запись, в которой вы можете установить отступы, то это довольно просто.

        if (Xamarin.Forms.Device.Idiom == TargetIdiom.Phone)
        {
            Control.SetPadding(20,20,0,0);
        }
        else if(Xamarin.Forms.Device.Idiom == TargetIdiom.Tablet)
        {
            Control.SetPadding(40,40,0,0);
        }

Вы можете сделать так.

...