2011-09-09 21 views
7

Ho installato le mie schede come segue:Tabs Android senza icone

spec = tabHost.newTabSpec("tab1").setIndicator("Tab 1").setContent(intent); 
    tabHost.addTab(spec); 

e ora ho una scheda che non ha alcuna icona, solo un titolo, ma lascia solo uno spazio vuoto icona di dimensioni con il Titolo in fondo - Ho provato ad aggiustare il layout_height nel xml, ma poi il testo è scomparso perché è visualizzato sotto il punto di taglio.

Come è possibile modificare le dimensioni di una scheda e visualizzare il titolo senza un'icona?

+0

possibile duplicato del [Tabs senza icona] (http://stackoverflow.com/questions/4460806/tabs-without-icon) –

risposta

11

La risposta è semplice: non è possibile. La scheda Android predefinita lascerà sempre dello spazio vuoto per l'immagine. Ma è possibile creare le proprie schede per compensare tale "restrizione" nella scheda predefinita. Ecco un ottimo tutorial per creare schede personalizzate.

http://joshclemm.com/blog/?p=136

Buona fortuna, Arkde

+0

Ya! Ha funzionato benissimo - ha dovuto modificare l'orientamento delle schede nell'XML e leggere i commenti ha spiegato come aggiungere un intento. Grazie Arkde! – GideonKain

1

modificare le dimensioni tabhost dal layout e solo per la visualizzazione scheda Codice Tile scrittura come sotto frammenti di codice

tabhost=getTabHost(); 


intent = new Intent(this,MainActivity.class); 
spec1 = tabhost.newTabSpec("").setIndicator("main_tab"); 
spec1.setContent(intent); 
tabhost.addTab(spec1); 

intent = new Intent(this,xyz.class); 
spec2 = tabhost.newTabSpec("").setIndicator("first_tab"); 
spec2.setContent(intent); 
tabhost.addTab(spec2); 
+0

Ho fatto questo e questo è il motivo per cui è apparso come una grande scatola grigia senza icona e titolo in fondo - la soluzione di Arkde sembra essere la soluzione giusta – GideonKain

2

Modifica della layout_height TabWidget e la gravità in xml ha funzionato per me. Il testo non si concentra nella scheda ma è allineato lungo la parte inferiore proprio come prima.

<TabWidget android:id="@android:id/tabs" 
    android:layout_width="fill_parent" android:layout_height="40dp" 
    android:gravity="bottom" /> 
0
// Center text displayed on a first tab 
View view = _tabHost.getTabWidget().getChildAt(0); 
if (view != null) { 
    // Hide icon 
    View tabImage = view.findViewById(android.R.id.icon); 
    if (tabImage != null) { 
     tabImage.setVisibility(View.GONE); 
    } 
    // Find text 
    TextView tabTitle = (TextView) view.findViewById(android.R.id.title); 
    if (tabTitle != null) { 
     // Change text gravity 
     tabTitle.setGravity(Gravity.CENTER); 
     // Remove text view from it's parent and re-add back to reset layout parameters 
     ViewGroup parent = (ViewGroup) tabTitle.getParent(); 
     parent.removeView(tabTitle); 
     parent.addView(tabTitle); 
     // New default layout parameters will have height set to WRAP_CONTENT, change it to MATCH_PARENT 
     ViewGroup.LayoutParams params = tabTitle.getLayoutParams(); 
     params.height = ViewGroup.LayoutParams.MATCH_PARENT; 
    } 
}