Мне нужно реализовать свой собственный рендерер для управления сборщиком.Вот код, который я получил до сих пор:
Код позади:
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](https://i.stack.imgur.com/jLQWy.png)
Android 8.1
![Android 8.1](https://i.stack.imgur.com/gLrRN.png)
Моя высота элемента управления установлена на 135, но я предполагаю, что эта проблема имеет что-то необычное с разрешением экрана, но я не уверен.
Как я могу принудительно установить высоту для этого элемента управления во всех версиях Android (> = 7.0)