Добавить нижнюю строку в коде пользовательского рендерера Android? - PullRequest
0 голосов
/ 11 декабря 2018

Я знаю, что по умолчанию DatePicker уже имеет нижнюю строку, но я пытаюсь добавить нижнюю строку к DatePicker в пользовательском коде визуализации (для некоторых целей).

Я могуустановить полную границу моего GradientDrawable объекта с помощью myGradientDrawable.SetStroke(3, myColor);, но я не знаю, как добавить только нижнюю строку, чтобы кто-нибудь мог мне помочь, пожалуйста?

1 Ответ

0 голосов
/ 12 декабря 2018

Попробуйте это:

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

    private AlertDialog alert;
    private CustomPicker element;
    private int selectedIndex;

    public LayerDrawable AddPickerStyles(string imagePath)
    {
        ColorDrawable borderColorDrawable = new ColorDrawable(Xamarin.Forms.Color.FromHex("#43addf").ToAndroid());
        ColorDrawable backgroundColorDrawable = new ColorDrawable(Xamarin.Forms.Color.FromHex("#7e1b80").ToAndroid());

        Drawable[] drawables = new Drawable[]
        {
            borderColorDrawable, backgroundColorDrawable
        };

        LayerDrawable layerDrawable = new LayerDrawable(drawables);
        layerDrawable.SetLayerInset(1, 0, 0, 0, 5);

        return layerDrawable;
    }

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

        element = (CustomPicker)this.Element;

        if (Control != null && this.Element != null)
        {
            Control.Background = AddPickerStyles(element.Image);
        }
    } 

}
...