Cambiar el estilo de fuente en las pestañas de la barra de acción con Sherlock
He leído esto:
Android – personalización de las pestañas de barra de acción de sherlock
- SlidingTabsBasic para tener slidingmenu, tabs, gridview
- Fragmento se inicializa dos veces al recargar la actividad con pestañas cuando cambia la orientación
- Barra de Acción de Android Icono de Sherlock para cada pestaña de recursos
- Obtener una URL de pestaña desde la acción de la página (WebExtensions, Android)
- Cerrar el teclado virtual después de cambiar las pestañas en tabhost
Y muchos más enlaces, he descubierto lo que es StackedBackground y lo que es de fondo, pero no puedo encontrar cómo quitar todas las tapas de las pestañas y obtener fuentes regulares, o cambiar el tamaño de la fuente en las pestañas de la barra de acción.
Al lado de eso, me encantaría cambiar el color de mi subrayado azul, y si utilizo 9 gráficos de parche, me encuentro con la misma situación que en el enlace de arriba, obtengo mi línea debajo del texto, pero no abajo en la parte inferior de la pestaña y La línea azul original permanece así que consigo dos líneas.
Hasta ahora tengo esto, pero he intentado tamaños de texto y todo tipo de colores, pero nada:
<style name="CustomActivityTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:actionBarStyle">@style/MyActionBar</item> <item name="android:actionBarTabTextStyle">@style/MyActionBar</item> </style> <style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar"> <item name="android:background">@drawable/grey</item> <item name="android:backgroundStacked">@drawable/ab_transparent_example</item> <item name="android:textAllCaps">false</item> <item name="android:textSize">10dp</item> </style>
Edit: Acabo de averiguar que puedo quitar todas las tapas con "android: actionBarTabTextStyle", pero ahora toma el color de fondo de "MyActionBar" … Así que cómo establecer las listas de actionBarTabTextStyle y actionBarStyle en alguna jerarquía, que el texto es reducido y no En mayúsculas, pero que no hace el fondo del estilo de "MyActionBar".
Editar 2: he probado algunas imágenes más 9patch, y se ve feo, pero no puedo deshacerse de las líneas azules …
- Android Barra superior de la barra de ActionBarSherlock
- Android: cambia las pestañas de una actividad dentro de una pestaña
- Android: ¿Por qué no debo usar actividades dentro de pestañas?
- Utilice diferentes colores para diferentes ActionBar.Tab
- Cómo cambiar el color del texto del indicador de tabs en android?
- Android 2.1 NullPointerException con TabWidgets
- Cambiar fragmentos dentro de la pestaña
- TabLayout Tab Título del texto en minúscula
Sé que esto se preguntó hace años, pero he pasado un rato tratando de resolver esto por lo que es para alguien que ha encontrado esta pregunta y todavía quiere saber la respuesta.
Primero haga un archivo xml con esto en él: tab_title.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/action_custom_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="My Custom title" android:textColor="#fff" android:textSize="18sp" android:paddingTop="5dp" />
A continuación, en la clase en la que instancias tu ActionBar utiliza este código para establecer el texto en cada una de las pestañas. (Este ejemplo utiliza ActionBarSherlock .)
ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); String[] tabNames = {"Tab 1","Tab 2","Tab 3"}; for(int i = 0; i<bar.getTabCount(); i++){ LayoutInflater inflater = LayoutInflater.from(this); View customView = inflater.inflate(R.layout.tab_title, null); TextView titleTV = (TextView) customView.findViewById(R.id.action_custom_title); titleTV.setText(tabNames[i]); //Here you can also add any other styling you want. bar.getTabAt(i).setCustomView(customView); }
Espero que esto ayude a cualquiera que tenía problemas como yo.
// update 1/6/2015
Si está utilizando TabLayout en la vista previa android M y desea cambiar la fuente que tiene que agregar un nuevo bucle para la solución anterior como este:
private void changeTabsFont() { ViewGroup vg = (ViewGroup) tabLayout.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(Font.getInstance().getTypeFace(), Typeface.NORMAL); } } } }
- Captura de pantalla en android
- ¿Hay una función en Android análoga a "int main" en C / C ++ que contiene el bucle principal del programa?