2010-12-04 9 views
1

Je travaille donc sur une interface utilisateur qui utilise une interface d'onglet pour changer d'activité. J'ai essayé de modifier le code trouvé ici: http://developer.android.com/resources/tutorials/views/hello-tabwidget.html afin qu'il corresponde à mes besoins.Mise en pause d'un texte d'onglets

Mais le problème que j'ai en ce moment est que la taille du texte requis pour les onglets est plus longue que la largeur de l'onglet lui-même. Donc ce que je me demandais, c'est s'il y a un moyen de faire en sorte qu'il n'y ait pas d'image mais deux lignes de texte à la place ou qu'il y ait deux lignes de texte et une icône. La deuxième option est celle que je préfère cependant.

Voici le code que je suis en train de modifier:

 spec = tabHost.newTabSpec("screen").setIndicator("Screen Ratio", 
         res.getDrawable(R.drawable.ic_tab_artists)) 
        .setContent(intent); 
    tabHost.addTab(spec); 

Le code est tout droit sorti du tutoriel, sauf pour le cas où j'ai changé le texte. C'est la première application que j'ai essayé d'écrire, donc c'est un travail en cours, mais est-ce que l'une ou l'autre de ces méthodes est un bon moyen d'y arriver ou y a-t-il une meilleure solution? Toutes les suggestions seraient très appréciées.

+0

Pourriez-vous s'il vous plaît vérifier si vous ajoutez \\ n au texte qu'il freine sur plusieurs lignes dans l'onglet? – Pentium10

+0

Donc, j'ajoute le \\ n comme vous l'avez suggéré afin qu'il ressemble à ceci: // Initialiser un TabSpec pour chaque onglet et l'ajouter au TabHost spec = tabHost.newTabSpec ("écran"). SetIndicator ("Ecran \ \ nRatio ", res.getDrawable (R.drawable.ic_tab_artists)) .setContent (intention); tabHost.addTab (spec); mais cela n'a rien changé. Au lieu de cela, l'onglet affiche le texte: "Screen \ nRatio" –

+0

essayez de passer null au lieu du 'Drawable' (pour l'option 1), pour l'option 2, essayez un plus petit' Icon' – st0le

Répondre

5

Je pense avoir trouvé comment résoudre votre problème avec les sauts de ligne.

tout d'abord: Vous pouvez utiliser la méthode

setIndicator(CharSequence label) pour la mise en texte seulement à votre onglet.

j'ai pu ajouter des sauts de ligne ainsi:

TextView title = (TextView) mTabHost.getTabWidget().getChildAt(1).findViewById(android.R.id.title); 
title.setSingleLine(false); 

Il semble que le TextView tenant le texte indicateur, a mis son attribut SingleLine à vrai par défaut. Donc, si vous le définissez sur false, vous pouvez utiliser \ n pour les sauts de ligne.

+0

Ne fonctionne pas le titre est rogné en deuxième ligne – JPM