Неожиданное поведение сборщика Xamarin при использовании пользовательского рендерера? - PullRequest
0 голосов
/ 20 февраля 2019

Мне нужно настроить цвет текста палитры (цвет Title), что невозможно в реализации Xamarin.Forms, поэтому я создал простой рендер, который сделал то, что мне было нужно:

using Android.Content;
using MyProj.Droid.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;

[assembly: ExportRenderer(typeof(Picker), typeof(CustomPickerRenderer))]
namespace MyProj.Droid.Renderers
{
    public class CustomPickerRenderer : PickerRenderer
    {
        public CustomPickerRenderer(Context context) : base(context) { }
        protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
        {
            base.OnElementChanged(e);
            if (Control != null)
            {
                Control.SetHintTextColor(((Color)Application.Current.Resources["TextColor"]).ToAndroid());
            }
        }
    }
}

но стиль элемента управления значительно изменился, поэтому вместо списка, который реагирует на жест касания любого элемента, он стал прокручиваемым списком, который реагирует только на кнопки OK / Отмена!

Изображения:

ожидаемый стиль (до использования настраиваемого средства визуализации):

enter image description here

неожиданный стиль (после использования настраиваемого средства визуализации): enter image description here

1 Ответ

0 голосов
/ 20 февраля 2019

ваш пользовательский рендер должен быть унаследован от Xamarin.Forms.Platform.Android.AppCompat.PickerRenderer вместо Xamarin.Forms.Platform.Android.PickerRenderer для ожидаемого стиля.

...