2011-09-09 7 views
7

J'ai installé mes onglets comme suit:onglets Android sans icônes

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

Et maintenant j'ai un onglet qui n'a pas d'icône, seulement un titre, mais il laisse juste une icône de taille espace vide avec le Titre en bas - J'ai essayé d'ajuster la layout_height dans le fichier xml, mais le texte est parti car il est rendu en dessous du point de coupure.

Comment puis-je modifier la taille d'un onglet et afficher le titre sans icône?

+0

double possible de [onglets sans icône] (http://stackoverflow.com/questions/4460806/tabs-without-icon) –

Répondre

11

La réponse est simple: vous ne pouvez pas. L'onglet Android par défaut laissera toujours un espace vide pour l'image. Mais vous pouvez créer vos propres onglets pour compenser cette "restriction" dans l'onglet par défaut. Voici un très bon tutoriel pour créer des onglets personnalisés.

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

Bonne chance, Arkde

+0

Ya! Travaillé bien - a dû changer l'orientation de l'onglet dans le XML et la lecture des commentaires compris comment ajouter une intention. Merci Arkde! – GideonKain

1

Changez votre taille de tabhost de mise en page et uniquement pour l'affichage du code d'écriture de carreaux Tab comme ci-dessous extraits de code de

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

Je l'ai fait et c'est pourquoi il est apparu comme une grande boîte grise sans icône et le titre au fond - la solution de Arkde semble être la solution de contournement appropriée – GideonKain

2

Modification du layout_height et de la gravité TabWidget en XML a travaillé pour moi. Le texte ne se centre pas dans l'onglet mais est aligné le long du bas comme avant.

<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; 
    } 
}