Comentarios en: Placeholder en DatePicker de Xamarin Forms con Visual Material en iOS y Android https://www.programandoamedianoche.com/2019/12/placeholder-en-datepicker-de-xamarin-forms-con-visual-material-en-ios-y-android/ El blog de Scientia® Soluciones Informáticas Sun, 19 Jul 2020 02:56:12 +0000 hourly 1 Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2019/12/placeholder-en-datepicker-de-xamarin-forms-con-visual-material-en-ios-y-android/#comment-16008 Fri, 22 May 2020 15:31:46 +0000 https://www.programandoamedianoche.com/?p=4048#comment-16008 En respuesta a Jérôme Liger.

¡Muchas gracias por la info!
Saludos.

]]>
Por: Jérôme Liger https://www.programandoamedianoche.com/2019/12/placeholder-en-datepicker-de-xamarin-forms-con-visual-material-en-ios-y-android/#comment-16007 Fri, 22 May 2020 15:29:15 +0000 https://www.programandoamedianoche.com/?p=4048#comment-16007 En respuesta a Jérôme Liger.

Ok, lo encontré yo mismo pero tenía que saberlo… si necessita alguien…

El «InputLayer» (Control de typo MaterialPickerTextInputLayout) tienne un método «ApplyTheme(textcolor, hintcolor)» que functionna.
El completo renderer es :

[assembly: ExportRenderer(typeof(CustomMaterialDatePicker), typeof(AndroidMaterialDatePickerRenderer), new[] { typeof(VisualMarker.MaterialVisual) })]
namespace YourAndroidRendererNamespace
{
    public class AndroidMaterialDatePickerRenderer : MaterialDatePickerRenderer
    {

        public AndroidMaterialDatePickerRenderer(Context context) : base(context) { }

        MaterialPickerTextInputLayout InputLayout;
        protected override MaterialPickerTextInputLayout CreateNativeControl()
        {
            InputLayout = base.CreateNativeControl();
            return InputLayout;
        }

        protected override void OnElementChanged(ElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            if (e.NewElement == null) return;

            var custompicker = e.NewElement as CustomMaterialDatePicker;
            if (InputLayout != null)
            {
                InputLayout.HintEnabled = true;
                InputLayout.Hint = custompicker.PlaceHolder;
                InputLayout.ApplyTheme(custompicker.TextColor, custompicker.PlaceHolderColor);
            }
        }
    }
}
]]>
Por: Jérôme Liger https://www.programandoamedianoche.com/2019/12/placeholder-en-datepicker-de-xamarin-forms-con-visual-material-en-ios-y-android/#comment-16006 Fri, 22 May 2020 14:50:40 +0000 https://www.programandoamedianoche.com/?p=4048#comment-16006 En respuesta a Gustavo Cantero (The Wolf).

El «Control» es de typo «MaterialPickerTextInputLayout» y no tiene este método SetHintTextColor (pero solo DefaultHintTextColor propriedad que functionna pour el primero display, pero no despues…)
He encontrado el «Control.EditText» que tienne este método «SetHintTextColor» pero no functiona en absoluto.

Tambien intenté interceptar el control nativo «MaterialPickerTextInputLayout» y de mofificar esto (al lugar del «Control») pero no mejor…

MaterialPickerTextInputLayout InputLayout;
protected override MaterialPickerTextInputLayout CreateNativeControl()
{
    InputLayout = base.CreateNativeControl();
    return InputLayout;
}

protected override void OnElementChanged(ElementChangedEventArgs e)
{
    [...]

    InputLayout.HintEnabled = true;
    InputLayout.Hint = formsPlaceHolder;
    InputLayout.DefaultHintTextColor = new ColorStateList(states, colors); //StateList constructed from FormsPlaceHolderColor
    InputLayout.EditText.SetHintTextColor(new ColorStateList(states, colors));
}
]]>
Por: Gustavo Cantero (The Wolf) https://www.programandoamedianoche.com/2019/12/placeholder-en-datepicker-de-xamarin-forms-con-visual-material-en-ios-y-android/#comment-16005 Fri, 22 May 2020 13:47:32 +0000 https://www.programandoamedianoche.com/?p=4048#comment-16005 En respuesta a Jérôme Liger.

Hola Jérôme.
¿Probaste de cambiar el color con el método SetHintTextColor?
Saludos.

]]>
Por: Jérôme Liger https://www.programandoamedianoche.com/2019/12/placeholder-en-datepicker-de-xamarin-forms-con-visual-material-en-ios-y-android/#comment-16004 Fri, 22 May 2020 13:36:26 +0000 https://www.programandoamedianoche.com/?p=4048#comment-16004 Ola ! Muy interessante, gracias.
Hecho lo mismo Renderer, pero tengo que ir mas lejo… necessito a cambiar el color de este PlaceHolder.
Cree una BindableProperty «PlaceHolderColor» en mi customDatePicker, pero en AndroidRenderer no puedo assignar este color…

Intente Control.DefaultHintTextColor = new ColorStateList(states, colors);
Y functionna… pero cuando selectionno una fecha, el color desaparece… no sé porque.

Una idea ? una pista ?

Muchas gracias (y disculpame para mi espanol… muchos anos que no he practicado ;-))

]]>