viewpager tablayout studio iconos google ejemplo con activity android androiddesignsupport android-tablayout

tablayout - tabs con iconos android



android: textAllCaps="false" no funciona para el soporte de diseƱo TabLayout (11)

He configurado android:textAllCaps="false" en mi android.support.design.widget.TabLayout pensó que muestra el título de la pestaña solo en mayúsculas.

¿Cómo puedo quitar todas las tapas?


Aquí hay una solución simple ... Disfruta

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


En las versiones priror a 14, debe configurar (como comentó 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 caso de que la versión de Android sea igual o superior a 14, debe configurar:

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

Entonces, si necesita ser compatible con las 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>


En mi caso funcionan dos variantes:

1) Por Bogdan (susemi99):

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

2) Por Paresh Mayani. Quería tener android:textAllCaps="false" y android:textSize="15sp" simultáneamente, por lo que su antiguo método funciona.

En styles.xml escriba (el padre puede variar, por ejemplo, "@android: style / TextAppearance.Widget.TabWidget", "TextAppearance.Design.Tab"):

<style name="TabLayout" parent="Widget.Design.TabLayout"> <item name="tabIndicatorColor">@color/color_blue</item> <item name="tabSelectedTextColor">@color/color_blue</item> <item name="tabTextColor">@color/black</item> <item name="tabTextAppearance">@style/TabLayoutTextAppearance</item> </style> <style name="TabLayoutTextAppearance" parent="TextAppearance.Design.Tab"> <item name="android:textSize">15sp</item> <item name="textAllCaps">false</item> <item name="android:textAllCaps">false</item> </style>

Aplicar este estilo en el diseño:

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


La respuesta de @Paresh Mayani es correcta, sin embargo, solo puede crear un estilo de pestaña

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

Y úsalo usando

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


Para aquellos que no pueden trabajar, otras respuestas .

La definición de un estilo funciona bien cuando tiene texto de pestaña de una sola línea. Si observa de cerca el TabLayout, verá que está usando un campo design_tab_text_size_2line cuando las pestañas tienen más de una línea.

La única forma que podría encontrar para efectuar este campo es anularlo en su archivo dimen.

Así que pon esto en tus valores / dimens.xml

<dimen name="design_tab_text_size_2line" tools:override="true">10sp</dimen>

Espero eso ayude.


Pruebe el siguiente método y puede implementar todos los métodos de TextView en TabLayout

private void setCustomTab() { ViewGroup vg = (ViewGroup) mTabLayout.getChildAt(0); int tabsCount = vg.getChildCount(); for (int j = 0; j < tabsCount; j++) { ViewGroup vgTab = (ViewGroup) vg.getChildAt(j); int tabChildsCount = vgTab.getChildCount(); for (int i = 0; i < tabChildsCount; i++) { View tabViewChild = vgTab.getChildAt(i); if (tabViewChild instanceof TextView) { ((TextView) tabViewChild).setTypeface(ResourcesCompat.getFont(this,R.font.montserrat_medium)); ((TextView) tabViewChild).setAllCaps(false); } } } }

Espero eso ayude.


También puede hacer esto en su código Java. Si está utilizando un SlidingTabLayout, mire 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) me resolvió el problema:

textView.setAllCaps(false);

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

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

Sin embargo, si tuviera todas las mayúsculas como> TÍTULO CON TODAS LAS MAYÚSCULAS <por supuesto, todavía tendría todas las mayúsculas en sus pestañas.

No hice otros cambios.

Cabe destacar que también puede establecer textView.setAllCaps (falso), pero esto no hizo ninguna diferencia en mi caso. Acabo de comentar textView.setAllCaps (verdadero).


use esta app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget" atributos app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget" Funcionará.

<android.support.design.widget.TabLayout android:id="@+id/tablayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" app:tabGravity="fill" app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget" app:tabIndicatorColor="@color/colorPrimary" app:tabMode="fixed" app:tabPaddingStart="0dp" />


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

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


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ñalado en el comentario, en caso de que alguien se haya perdido ese comentario, lo pondré aquí. textAllCaps establecer textAllCaps y android:textAllCaps en false para deshabilitar todas las configuraciones 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 manera predeterminada, TabLayout crea las pestañas y establece que la propiedad textAllCaps sea verdadera, debe definir un estilo que haga que esta bandera sea falsa.

<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>


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

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