2010-08-24 25 views
6

Tengo una aplicación con 4 pestañas. Por defecto, cada ancho de pestaña es 1/4 del ancho de la pantalla. ¿Cómo puedo anular esto?Pestañas de diferentes tamaños en Android

Necesito las pestañas para tener un ancho diferente para cada una. ¿Alguna idea sobre cómo lograr eso?

+0

yo también estoy buscando la misma, pago y envío este: http://stackoverflow.com/questions/3446722/android-tabhost-problem-setindicator –

+0

parece interesante Paresh. ¿Intentó alguna de las dos soluciones propuestas (Style o OverHost TabHost)? En este momento estoy viendo este problema y creo que el mejor enfoque/más rápido es crear nuestras propias pestañas (con botones y oyentes). – momo

Respuesta

0

Prueba esto:

<TabWidget android:layout_width="wrap_content" ... /> 
+0

Hola radek-k, ya estoy usando "wrap_content" y no importa si lo cambio. Probablemente es debido a que estoy usando una Vista como Indicador de Pestaña, no solo texto. Gracias de todos modos – momo

1

Finalmente logré tener un diferentes pestañas de tamaño utilizando ToggleButton.

Mi XML es como esto

<LinearLayout 
    android:id="@+id/tabs" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_below="@id/header" 
> 

    <ToggleButton 
    android:id="@+id/tab1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableRight="@drawable/icon_home" 
    android:textOn="" 
    android:textOff="" 
    android:background="@drawable/tabselector" 
    android:paddingLeft="15dip" 
    android:paddingRight="15dip" 
    android:layout_weight="0" 
    /> 
     <ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/top_menubar_separator" /> 

<ToggleButton 
    android:id="@+id/tab2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableRight="@drawable/icon_store" 
    android:textOn="Store" 
    android:textOff="Store" 
    android:background="@drawable/tabselector" 
    android:paddingLeft="15dip" 
    android:paddingRight="15dip" 
    android:layout_weight="2" 
    /> 

Donde cada ToggleButton es una ficha. El truco aquí es usar el peso para expandir las pestañas para llenar completamente la pantalla.

El teab_selector.xml se parece a esto

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/top_menubar_selected" 
      android:state_pressed="true" 
      /> 
<item android:drawable="@drawable/top_menubar_selected" 
      android:state_checked="true" 
      /> 
     <item  android:drawable="@drawable/top_menubar_1px" /> 
</selector> 

todavía tengo que codificar la lógica para un-presione un botón cuando se selecciona una nueva y poner en marcha una intención con ta actividad, pero se ve bien hasta ahora .

2

Prueba esto:

tabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 35; 
+0

Esto definitivamente cambia la altura de la pestaña, pero su texto se perderá ... Por favor déjenme saber si tienen solución para este problema. –

+0

El texto desaparecerá solo si el tamaño del texto y la altura de la pestaña no están en proporción. Intente reducir el tamaño del texto de la pestaña o aumente la altura de la pestaña para que se vea el texto. – Zeba

+0

funcionan como un encanto – sivi

Cuestiones relacionadas