Неверный пользовательский контроль высоты в Android 7 - PullRequest
1 голос
/ 20 сентября 2019

Мне нужно реализовать свой собственный рендерер для управления сборщиком.Вот код, который я получил до сих пор:

Код позади:

public class DMGPicker : Picker
{
}

XAML

<localPicker:DMGPicker
    IsVisible="False"
    x:Name="Login_Language" />

И для Android:

class DMGPickerCustomRenderer : PickerRenderer
{
    public DMGPickerCustomRenderer(Context context) : base(context)
    {
    }

    protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
    {
        base.OnElementChanged(e);

        if (Control != null)
        {
            var castControl = (DMGPicker)e.NewElement;

            global::Android.Graphics.Color _color = global::Android.Graphics.Color.Rgb(142, 142, 142);

            if (castControl.BackgroundColor != null)
            {
                _color = castControl.BackgroundColor.ToAndroid();
            }

            GradientDrawable gd = new GradientDrawable(); 
            gd.SetStroke(3, global::Android.Graphics.Color.ParseColor("#888888"));
            gd.SetCornerRadius(20);
            gd.SetColor(_color);
            Control.SetBackground(gd);
            Control.SetPadding(20, 20, 20, 20);
            Control.SetHeight(135);
            Control.SetHintTextColor(global::Android.Graphics.Color.Rgb(192, 192, 192));
        }
    }
}

Мой контроль работает нормально, но у меня проблема с высотой контроля.На Android Oreo 8.1 его высота правильно установлена, но в Android 7 контроль слишком велик.Вот скриншоты

Android 7.0

Android 7.0

Android 8.1

Android 8.1

Моя высота элемента управления установлена ​​на 135, но я предполагаю, что эта проблема имеет что-то необычное с разрешением экрана, но я не уверен.

Как я могу принудительно установить высоту для этого элемента управления во всех версиях Android (> = 7.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...