Cambia le linee di colore nel selettore XAMARIN

Aug 24 2020

Ho il mio CustomPicker. Per favore dimmi come posso cambiare il colore della linea nella finestra di selezione

Risposte

2 LucasZhang-MSFT Aug 24 2020 at 12:29

Potresti implementarlo usando la riflessione .

private void setNumberPickerDividerColor(TextColorNumberPicker numberPicker)
    {


        TextColorNumberPicker picker = numberPicker;
        Java.Lang.Reflect.Field[] pickerFields = 
        Java.Lang.Class.FromType(typeof(NumberPicker)).GetDeclaredFields();
        foreach (Java.Lang.Reflect.Field pf in pickerFields)
        {
            if (pf.Name.Equals("mSelectionDivider"))
            {
                pf.Accessible = true;
                pf.Set(picker, new ColorDrawable(Android.Graphics.Color.Red));

            }
        }
    }

E l'ho richiamato dopo aver chiamato SetDisplayedValues

if (model.Items != null && model.Items.Any())
{
   // set style here

   picker.MaxValue = model.Items.Count - 1;
   picker.MinValue = 0;


   picker.SetDisplayedValues(model.Items.ToArray());
   picker.WrapSelectorWheel = false;
   picker.Value = model.SelectedIndex;

}
setNumberPickerDividerColor(picker);