首页 > 解决方案 > android 7中的自定义控件高度无效

问题描述

我需要为选择器控件实现我自己的自定义渲染器。这是我到目前为止的代码:

后面的代码:

public class DMGPicker : Picker
{
}

XAML

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

对于安卓:

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 中,控件太大。这里是截图

安卓7.0

安卓7.0

安卓8.1

安卓8.1

我的控制高度设置为 135,但我认为这个问题与屏幕分辨率有一些不常见但我不确定。

如何在所有 android 版本 (>=7.0) 中强制此控件的高度?

标签: androidxamarin.formscontrols

解决方案


推荐阅读