How to set the font size for items in Xamarin Picker?


I try to change the items font size in Xamarin.Picker for my Android app. In my project, I use BindablePicker that inherits from Picker class. Source here.

I spent some time to do research and I found that I should create a PickerRenderer class and render the Picker.

My renderer class:

public class BindablePickerRenderer : PickerRenderer
    protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)

        var picker = e.NewElement;
        BindablePicker bp = (BindablePicker)this.Element;

        if (this.Control != null)
            var pickerStyle = new Style(typeof(BindablePicker))

                Setters =
                    new Setter { Property = VisualElement.BackgroundColorProperty, Value = Color.Red }

            picker.Style = pickerStyle;

For test purposes I set the backgroundColor for Picker and it works fine. However, in my PickerRenderer class I only have access to Control property which is type of Android.Widget.EditText.

The effect :


How can I access to Picker items, and set the font size for them? Is this possible?

Here is my repository with an example project.

Related links

Changing the default text color of a Picker control in Xamarin Forms for Windows Phone 8.1

Font size in Picker control in xamarin forms

After some research I don't think this is possible for a generic picker.

You would likely have an easier time just rolling your own picker control in Forms code using a clickable label that pops up a list to select from.

I was able to style a date or time picker using styles in the Android styles.xml file, but since Android does not have a built in generic picker widget, I imagine that Forms is rolling it's own picker list as I can't find the dialog widget to theme that changes your list text size.

For a DatePicker, I can just add the following to the main style element in styles.xml:

<item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item>

and then add a new style element in style.xml

<style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog">
    <item name="android:textSize">60sp</item>

The above does change the text size for a DatePicker (no custom renderer required). Also the customer picker renderer is a bit of a misnomer... it really is just rendering the edit text field that shows the picked item, and allows opening the picker list on click.

I know this is not a solution, but just an indication as to what I found when checking this out and a suggestion that it is likely easiest to not use the Forms Picker type if you want such customization.