How to customise the TextView inside a Spinner?

Override the getView method of the Adapter to create a custom list view item.

View getView(int position, View  convertView, ViewGroup  parent) {
     TextView tv = null;
     if(covertView instanceof TextView) {
          tv = (TextView) convertView;
     } else {
          tv = new TextView(this);
          tv.setText("Awesome Text");
     }
     return tv;
}

Also when you create the adapter you can pass in a layout to use for the item, so in that case ConvertView would be a RelativeLayout or LinearLayout.


The answer was to remove the padding from the definition of the Spinner. Every time I set the padding of the Spinner the Text gets out of shape.

The spinner drawable is using the padding box from the nine patch to determine where to draw the the content. If I set a padding manually the definition of the padding from the padding box will be overridden.

If you want to set a padding in addition to a padding box you need to wrap everything inside that paddinbox into an additional Layout container.