¿Hay alguna forma de utilizar SpannableString en TabLayout?

Quiero establecer el título de TabLayout con dos tamaños de texto diferentes. Como la imagen dada abajo. O al revés para lograr esto!

Introduzca aquí la descripción de la imagen

He intentado con SpannableString como dar a continuación. ¡Este fragmento está en el bucle for hasta 5!

SpannableString mSpannableString= new SpannableString(s); mSpannableString.setSpan(new RelativeSizeSpan(2f), 0,5, 0); // set size mSpannableString.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0);// set color mTabLayout.getTabAt(i).setText(mSpannableString); 

Pero como se menciona por CommonaSware setText () no está tomando el contenido rico!

El estilo predeterminado de TextView para su TextView s utiliza un TextAppearance con el atributo textAllCaps establecido en true . El método de transformación para esto maneja el CharSequence como una String plana, por lo que cualquier información Spannable se pierde.

Para evitar esto, podemos crear un estilo para el TabLayout que desactiva textAllCaps . Por ejemplo:

 <style name="TabTextAppearance" parent="TextAppearance.Design.Tab"> <item name="textAllCaps">false</item> </style> 

Establecer esto como tabTextAppearance en TabLayout permitirá que SpannableString funcione como se esperaba.

 <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabTextAppearance="@style/TabTextAppearance" /> 

Como se menciona en los comentarios, usar una View personalizada para las pestañas es otra opción aquí, ya que no tendría la configuración de atributo problemático por defecto.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.