2010-08-24 14 views
6

Ho un'applicazione con 4 schede. Di default, ogni larghezza di tabulazione corrisponde a 1/4 della larghezza dello schermo. Come posso ignorare questo?Schede di dimensioni diverse in Android

Ho bisogno che le schede abbiano una larghezza diversa per ciascuna. Qualche idea su come realizzarlo?

+0

Sto anche cercando per lo stesso, checkout questo: http://stackoverflow.com/questions/3446722/android-tabhost-problem-setindicator –

+0

sembra interessante Paresh. Hai provato una delle due soluzioni proposte (Style o Overriding TabHost)? In questo momento sto esaminando questo problema e penso che l'approccio migliore/più veloce sia quello di creare le proprie schede (con pulsanti e ascoltatori). – momo

risposta

0

Prova questo:

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

Ciao radek-k, sto già usando "wrap_content" e non fa differenza se lo cambio. Probabilmente è dovuto che sto usando un indicatore Visualizza come tab, non solo testo. Grazie comunque – momo

1

Finalmente sono riuscito ad avere uno schede diverse dimensioni utilizzando ToggleButton.

mio XML è come questo

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

Dove ogni ToggleButton è una scheda. Il trucco qui sta usando il peso per espandere le schede per riempire completamente lo schermo.

Il teab_selector.xml assomiglia a questo

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

ho ancora bisogno di codificare la logica per non-pressione di un pulsante quando viene selezionata una nuova e lanciare un intenti con ta attività, ma sembra piacevole finora .

2

Prova questa:

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

Questo sicuramente cambia l'altezza della scheda ma il tuo testo andrà perduto ... per favore fammi sapere se hai una soluzione per questo problema. –

+0

Il testo scompare solo se la dimensione del testo e l'altezza della tabulazione non sono proporzionali. Prova a ridurre le dimensioni del testo della scheda o aumenta l'altezza della scheda in modo che il testo venga visualizzato. – Zeba

+0

funzionano come un fascino – sivi

Problemi correlati