Android: textAllCaps = "false" no funciona para el diseño de TabLayout

He fijado android:textAllCaps="false" en mi android.support.design.widget.TabLayout pensó que está mostrando el título de la etiqueta en todos los casquillos solamente.

¿Cómo puedo quitar todos los tapones?

ACTUALIZACIÓN PARA LA BIBLIOTECA DE DISEÑO 23.2.0+

La respuesta original no funciona con la biblioteca de diseño 23.2.0 o posterior. Gracias por @ fahmad6 señaló en el comentario, en caso de que alguien se perdió ese comentario, lo voy a poner aquí. Es necesario configurar tanto textAllCaps como android:textAllCaps como false para desactivar todas las android:textAllCaps de mayúsculas.

 <style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab"> <item name="textAllCaps">false</item> <item name="android:textAllCaps">false</item> </style> 

RESPUESTA ORIGINAL

De forma predeterminada, las fichas son creadas por TabLayout establece la propiedad textAllCaps como verdadera, hay que definir un estilo que haga que este indicador sea falso.

 <style name="MyCustomTabLayout" parent="Widget.Design.TabLayout"> <item name="tabTextAppearance">@style/MyCustomTextAppearance</item> </style> <style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab"> <item name="textAllCaps">false</item> </style> 

@Paresh Mayani respuesta es correcta sin embargo, usted puede crear sólo el estilo de la pestaña

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

Y usarlo usando

 <android.support.design.widget.TabLayout app:tabTextAppearance="@style/MyCustomTextAppearance" .../> 

https://stackoverflow.com/a/34678235/1025379

 <android.support.design.widget.TabLayout app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget" /> 

En las versiones priror a 14, es necesario configurar (como comentado por Paresh Mayani):

 <style name="MyCustomTabLayout" parent="Widget.Design.TabLayout"> <item name="tabTextAppearance">@style/MyCustomTextAppearance</item> </style> <style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab"> <item name="textAllCaps">false</item> </style> 

Pero, en el caso de la versión de Android es igual o mayor que 14, es necesario establecer:

 <item name="android:textAllCaps">false</item> 

Por lo tanto, si necesita ser compatible con versiones anteriores y posteriores a 14, también debe crear una carpeta valores-v14 y un archivo styles.xml en esa carpeta con el contenido:

 <?xml version="1.0" encoding="utf-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab"> <item name="android:textAllCaps">false</item> </style> </resources> 

Aquí está la solución simple …. Disfrute

  for (int tabIndex = 0; tabIndex <tabLayout.getTabCount() ; tabIndex++) { TextView tabTextView = (TextView)(((LinearLayout)((LinearLayout)tabLayout.getChildAt(0)).getChildAt(tabIndex)).getChildAt(1)); tabTextView.setAllCaps(false); } 

También puede hacer esto en su código Java. Si está utilizando un aspecto de SlidingTabLayout en este ejemplo:

 protected TextView createDefaultTabView(Context context){ TextView textView = new TextView(context); textView.setGravity(Gravity.CENTER); textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, TAB_VIEW_TEXT_SIZE_SP);//see line 38 above change the value their in TAB_VIEW_TEXT_SIZE_SP. textView.setTypeface(Typeface.DEFAULT);//From DEFAULT_BOLD textView.setTextColor(Color.parseColor("#536DFE"));//Text color of the words in the tabs. Indigo A200 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ // If we're running on Honeycomb or newer, then we can use the Theme's // selectableItemBackground to ensure that the View has a pressed state TypedValue outValue = new TypedValue(); getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true); textView.setBackgroundResource(outValue.resourceId); } if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){ // If we're running on ICS or newer, enable all-caps to match the Action Bar tab style textView.setAllCaps(true); } int padding = (int)(TAB_VIEW_PADDING_DIPS * getResources().getDisplayMetrics().density); textView.setPadding(padding, padding, padding, padding); return textView; } 

Observe que textView.setAllCaps () tiene true como el perímetro:

 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){ // If we're running on ICS or newer, enable all-caps to match the Action Bar tab style textView.setAllCaps(true); } 

Cuando cambié esto a (falso) resolvió el problema para mí:

 textView.setAllCaps(false); 

También mi archivo de recursos de cadena que utilizo para las pestañas se ve así:

 <string name="tab_title">Title with capital and smaller case</string> 

Sin embargo, si tenía todas las tapas como> TITLE WITH ALL CAPS <usted todavía obtendría por supuesto todas las tapas en sus pestañas.

No hice otros cambios.

Es digno de mención que se puede establecer textView.setAllCaps (false) también, pero esto no hizo ninguna diferencia en mi caso. Acabo de comentar textView.setAllCaps (true).

  • Pase el evento de desplazamiento a otra vista
  • Desactivar el desplazamiento de la barra de herramientas
  • Agregar el comportamiento de vista de desplazamiento de la barra de aplicaciones a varias vistas en CoordinatorLayout
  • Match_parent no funciona con CoordinatorLayout
  • La generación de Gradle es muy lenta después de añadir la biblioteca de Android Design Support
  • Cambiar Navegación Ver color del elemento Dinámicamente Android
  • AppBarLayout no responde al desplazamiento en el fragmento
  • agrega onClickListener al encabezado de vista de navegación usando la biblioteca de soporte de diseño de android
  • ¿Cómo restablecer la posición de la barra de herramientas controlada por el CoordinatorLayout?
  • Error al inflar la clase android.support.design.widget.NavigationView
  • BottomNavigationView deshabilita el modo de cambio sin usar la reflexión
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.