2011-04-26 26 views

Respuesta

69

Puede definir temas, estilos de uso para lograrlo:

En primer lugar se crea el tema (nombre : CustomTheme) para su Activity en su res/values/styles.xml:

<style name="CustomTheme" parent="@android:style/Theme"> 
    <item name="android:tabWidgetStyle">@style/CustomTabWidget</item> 
</style> 
<style name="CustomTabWidget" parent="@android:style/Widget.TabWidget"> 
    <item name="android:textAppearance">@style/CustomTabWidgetText</item> 
</style> 
<style name="CustomTabWidgetText" 
    parent="@android:style/TextAppearance.Widget.TabWidget"> 
    <item name="android:textSize">20sp</item> 
    <item name="android:textStyle">bold</item> 
</style> 

Luego, en su androidManifest.xml especifica el tema anterior para su TabActivity o Activity que contiene su TabWidget:

<activity android:name="MyTabActivity" android:theme="@style/CustomTheme"> 

Esto le servirá con la salida que desee (por supuesto, usted debe cambiar el tamaño y el estilo de tu preferencia).

+2

En el emulador de Android 4.1.2, esto parece configurar el estilo de tabulación para que me parezca extraño: los botones son de color naranja cuando se presionan. (¿Tal vez está aplicando un poco de estilo Android 1.0 en lugar del 4.1 por defecto?) – sydd

+2

Recibí errores cuando lo puse bajo 'res' pero lo arreglé poniéndolo bajo' res/values'. – Barney

+2

@sydd Debes derivar de Widget.Holo.TabWidget – Roel

16

No es bonita, pero probar este sucio Solución:

TabWidget tw = (TabWidget)tabHost.findViewById(android.R.id.tabs); 
View tabView = tw.getChildTabViewAt(0); 
TextView tv = (TextView)tabView.findViewById(android.R.id.title); 
tv.setTextSize(20); 

o

//Do this to hack font size of title text 
LinearLayout ll = (LinearLayout) tabHost.getChildAt(0); 
TabWidget tw = (TabWidget) ll.getChildAt(0); 

// for changing the text size of first tab 
RelativeLayout rllf = (RelativeLayout) tw.getChildAt(0); 
TextView lf = (TextView) rllf.getChildAt(1); 
lf.setTextSize(21); 
lf.setPadding(0, 0, 0, 6); 
+0

el segundo funcionó para mí - gracias – sami

+3

El fragmento de código anterior funciona para android por debajo de 2.3. No funciona para Android 4.0 y 4.1. – Sathish

+1

No funciona. – princepiero

4

ligeramente generalizada:

final TabWidget tw = (TabWidget)mTabHost.findViewById(android.R.id.tabs); 
    for (int i = 0; i < tw.getChildCount(); ++i) 
    { 
     final View tabView = tw.getChildTabViewAt(i); 
     final TextView tv = (TextView)tabView.findViewById(android.R.id.title); 
     tv.setTextSize(20); 
    } 
+0

¡Esto funcionó bien conmigo! Gracias por compartir. – Mohammad

2

i utilizar este pedazo de código en mi código, pero en realidad únicamente en el primer Tab los otros 3 más aquí todavía están sin cambios.

TabWidget tw = (TabWidget)tabHost.findViewById(android.R.id.tabs); 
    View tabView = tw.getChildTabViewAt(0); 
    TextView tv = (TextView)tabView.findViewById(android.R.id.title); 
    tv.setTextSize(10); 
Cuestiones relacionadas