2011-09-18 18 views
8

Ho una domanda di base. In molti esempi di tabhost, troviamo schede con immagini e testo.Come centrare il testo in tabhost?

Nel mio caso, vorrei solo visualizzare un testo, ma il problema è che il mio testo è centrato orizzontalmente ma non verticalmente (il testo è nella parte inferiore della mia scheda).

Ho provato: android: layout_gravity = "center" nel framelayout, ma non funziona.

Avete qualche idea, per favore?

Il mio xml.

<TabHost 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/tabhost" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:layout_gravity="center"> 

    <LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="center"> 

     <TabWidget android:id="@android:id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center"/> 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center"> 

     </FrameLayout> 

    </LinearLayout> 

</TabHost> 

risolto: ho personalizzato il mio schede grazie a: tutorial: http://joshclemm.com/blog/?p=136

Grazie

+0

È meglio utilizzare una scheda personalizzata poiché le schede predefinite hanno dimensioni di icone e testo entrambe. –

+0

possibile duplicato di [Come centrare l'allineamento del testo in una barra delle schede in Android] (http://stackoverflow.com/questions/5164443/how-to-center-align-text-in-a-tab-bar-in- android) – user7116

+0

La stessa domanda è stata posta molto tempo fa. Si prega di leggere questo problema [inserire la descrizione del collegamento qui] (http://stackoverflow.com/questions/5164443/how-to-center-align-text-in-a-tab-bar-in-android) – Dimon

risposta

0
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:gravity="center_vertical|center_horizontal" 
android:layout_gravity="center_vertical|center_horizontal" 
+0

Ho provato la tua soluzione ma non funziona. è nella parte inferiore della mia scheda. Funziona per te? – Miroufle

+0

aggiornato la risposta, hai provato? – user634545

+0

Sì, ho provato entrambe le versioni, ma non funziona :( – Miroufle

0

Utilizzare il seguente per il codice per rendere il testo scheda nel centro:

RelativeLayout .LayoutParams param = new

RelativeLayout.Layout Parametri (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

param.addRule(RelativeLayout.CENTER_IN_PARENT); 

TextView tv = (TextView) tabHost.getTabWidget().getChildAt(0) 
      .findViewById(android.R.id.title); // Unselected Tabs 
    tv.setTextColor(Color.parseColor("#505050")); 
    tv.setTextSize(10); 
    tv.setLayoutParams(param); 
3
  1. cercare di ottenere il primo titolo della scheda e impostare gravità e layout in modo esplicito come illustrato di seguito:

    TextView textView = (TextView)tabHost.getTabWidget().getChildAt(0) 
    .findViewById(android.R.id.title); 
    textView.setGravity(Gravity.CENTER);   
    textView.getLayoutParams().height = ViewGroup.LayoutParams.MATCH_PARENT; 
    textView.getLayoutParams().width = ViewGroup.LayoutParams.WRAP_CONTENT; 
    

    Spero che questo aiuto.

Problemi correlati