Tipo de letra personalizado en el título de la pestaña de ActionBar

Estoy tratando de establecer un tipo de letra personalizado en miActionBar títulos de las pestañas.

He visto más desarrolladores que solicitan una forma adecuada de hacer esto en SO (por ejemplo,Cómo personalizar la fuente de las pestañas de la barra de acción & ¿Cómo (si es posible) podría establecer una fuente personalizada en una barra de acción en el texto de la pestaña con una fuente en mi carpeta de activos?) pero no hay respuestas.

Hasta ahora, he seguido dos enfoques:

1) El primero fueinspirado por estoQue pregunta y consiste en inflar un diseño personalizado para cada pestaña:

LayoutInflater inflater = LayoutInflater.from(this);
View customView = inflater.inflate(R.layout.tab_title, null); // a custom layout for the tab title, basically contains a textview...

TextView titleTV = (TextView) customView.findViewById(R.id.action_custom_title);
        titleTV.setText(mSectionsPagerAdapter.getPageTitle(i));
        titleTV.setGravity(Gravity.CENTER_VERTICAL);
        titleTV.setTypeface(((MyApp) getApplicationContext()).getCustomTypeface());

// ...Here I could also add any other styling I wanted to...

actionBar.getTabAt(i).setCustomView(customView);

Esto no parece ser un buen enfoque porque si las pestañas + acciones no se ajustan a la barra de acción en modo horizontal, los títulos de las pestañas se muestran en una lista de desbordamiento (Spinner / Drop-down) pero el valor seleccionado aparece como vacío. Y cuando hace clic en el elemento de esta lista, desaparecen todas estas vistas. Esto es particularmente molesto cuando, por ejemplo, el usuario expande una vista de acción de búsqueda que hace que Android muestre la pestaña como un menú desplegable.

2) He intentado otro enfoque según lo presentadoaquí lo que implica el uso de unSpannableString pero la fuente no cambia a mi personalizada

SpannableString s = new SpannableString(mSectionsPagerAdapter.getPageTitle(i));
s.setSpan(new TypefaceSpan(this, "FontName.ttf"), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
actionBar.addTab(actionBar.newTab().setText(s).setTabListener(this));

Se puede ver la clase TypefaceSpan.aquí.

Asi que...

¿Alguien sabe una forma adecuada de estilizar elActionBar los títulos de las pestañas con un tipo de letra de "/ asset / fonts / ..."? Cualquier ayuda sería muy apreciada.

EDITAR:

Más sobre el segundo enfoque. La clase TypefaceSpan que estoy usando es en realidad una bifurcación deandroid.text.style.TypefaceSpan como lo presentó el usuario @twaddington aquí:¿Cómo establecer una fuente personalizada en el título de la barra de acción?

EDIT 2:

En el enlace anterior, un comentario decía:"Si el atributo textAllCaps se establece en verdadero en el TextView subyacente (por ejemplo, a través de un tema), entonces no aparecerá la fuente personalizada. Esto fue un problema para mí cuando apliqué esta técnica a los elementos de la pestaña de la barra de acción".

He cambiado mi estilo para que textAllCaps se haya establecido en false y ahora el segundo método parece funcionar. Lo probaré un poco y publicaré los resultados.

Conclusión:

La solución en la edición anterior parece funcionar.

Marcar la respuesta de @ CommonsWare como correcta por su relevancia.

PS-EDIT para @PeteH:

Le pregunté esto hace 6 meses, así que no recuerdo todos los detalles. Creo que para esta aplicación terminé siguiendo un enfoque diferente para la navegación. Todo lo que puedo encontrar ahora en la aplicación (en relación con deslizar ...) es unActivity cuyo diseño contiene unaViewPager con unPagerTabStrip, que me puse este estilo:

// Style the Tab Strip:
Typeface tf = ((MyApplication) getApplication()).getTabStripTypeface(); // Used this to keep a single instance of the typeface (singleton pattern) and avoid mem. leaks
PagerTabStrip strip = (PagerTabStrip) findViewById(R.id.pager_title_strip);
strip.setTabIndicatorColor(getResources().getColor(R.color.myColor));
strip.setDrawFullUnderline(true);
for (int i = 0; i < strip.getChildCount(); ++i) {
    View nextChild = strip.getChildAt(i);
    if (nextChild instanceof TextView) {
        TextView textViewToConvert = (TextView) nextChild;
                    textViewToConvert.setAllCaps(false); 
        textViewToConvert.setTypeface(tf);
    }
}

Sin embargo, esto no es lo mismo que el problema presentado en esta pregunta.

El único código relacionado que puedo encontrar es este, donde configuro unSpannableString:

// For each of the sections in the app, add a tab to the action bar.
for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
    SpannableString s = new SpannableString(mSectionsPagerAdapter.getPageTitle(i));
    s.setSpan(new TypefaceSpan(this, "FontName.ttf"), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    actionBar.addTab(actionBar.newTab().setText(s).setTabListener(this));
}

... mientras que en mi styles.xml, tenía el estilo para el Texto de la Pestaña de la Barra de Acción de esta manera:

<!-- action bar tabtext style -->
<style name="ActionBarTabText.MyApplication" parent="@android:style/Widget.Holo.ActionBar.TabText">
    <item name="android:textAppearance">@android:style/TextAppearance.Holo.Medium</item>
    <item name="android:textColor">?android:attr/textColorPrimaryInverse</item>
    <item name="android:textSize">15sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:ellipsize">marquee</item>
    <item name="android:maxLines">1</item>
</style>

Respuestas a la pregunta(2)

Su respuesta a la pregunta