10
votes

Comment arrêter les titres dans les onglets Android de l'emballage au milieu d'un mot?

J'ai une mise en page avec plusieurs onglets. Ce qui se passe est que, dans l'orientation du paysage, la mise en page enveloppe le texte utilisé dans les titres de tabulation, mais pas sur un mot - son enveloppement au milieu d'un mot! Donc un titre comme: xxx

a l'air bien en portrait mais dans le paysage est montré comme ceci: xxx

Je ne spécifie aucun mot Attributs d'enveloppement ou de style pour le texte. J'imagine que la mise en page aurait plus d'espace en mode paysage que de portrait. Cela n'a donc aucun sens. Apprécierait tout conseil sur ce qu'il faut regarder.


0 commentaires

4 Réponses :


0
votes
  • Utilisez-vous le même fichier de mise en page pour le paysage et le portrait?
  • sont la largeur de vos onglets définie sur wrap_content ?
  • essayez de paramétrer singleline = "true" sur l'onglet texte
  • La largeur de l'onglet est-elle une augmentation graphique lorsqu'elle est remplie de paysage?
  • utilisez-vous un arrière-plan personnalisé sur les onglets et si oui est-il un neuf-patch?

    Bien que tbh j'utilise habituellement un radiogroupe et un framelayout pour réaliser des onglets car il fournit plus de contrôle (vous ne pouvez pas modifier la bande de tabulation dotée avant 2,2 et utiliser cette méthode que vos onglets peuvent être séparés de la teneur en onglet afin que vous puissiez peut mettre l'un ou l'autre part où vous voulez).


8 commentaires

1. Non, la disposition du paysage est légèrement différente de sorte que c'est un fichier séparé. Toutefois, le tabhost est identique et dans les deux cas, les onglets sont ajoutés par programme (à l'aide de Tabspec, etc.) - Même code exécuté pour le mode portrait ou paysage.


2. Oui, les onglets sont définis sur Wrap_Content.


3. Testé cela. Oui, cela arrête l'emballage, mais je faire veut WordWrap car certains titres d'onglets sont> 1 mot. L'emballage de mot fonctionne bien dans l'orientation portrait.


4. Difficile à dire (la mise en page est légèrement différente bien que la fenêtre soit plus large dans le paysage) - Le spectateur de hiérarchie m'aidait-il à vérifier les largeurs?


5. Oui, nous utilisons un sélecteur avec des images à 9 patch pour les états.


Ok alors: 1) essayez de changer / supprimer les marges de contenu de votre 9 patch (pour voir si votre image est en défaut) 2) Retirez la disposition du paysage et donnez-lui un test avec la disposition du portrait dans le paysage - si les boutons redimensionnent Correctement cette fois-ci, c'est votre fichier de mise en page 3) Yep Vous pouvez utiliser la visionneuse de hiérarchie et Pixel parfait


1. Retirer un peu de rembourrage des onglets semblait aider un peu.


2. Malheureusement, le paysage est différent, donc nous devons le garder autour.



0
votes

OK, nous avons réussi à résoudre ce problème. Dû réduire la taille de la police par 1PT taille et réduire le rembourrage gauche + droit sur les onglets. Nous avons également remarqué que dans le paysage, les onglets étaient tous de la même taille, mais ils n'étaient pas, si évidemment quelque part que nous avions un remplissage à la place à la place d'un wrap_content. La solution semble fonctionner pour des comprimés 7 "et 10". Merci pour l'aide.


0 commentaires

0
votes

Vous pouvez gérer cela, avec

Remplacer cette classe dans le projet ActionbarSharlock ./actionbarsherlock/src/com/actionbarsherlock/internal/widget/scrollingtabContainerview.java

@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);

    if (mParent.mMaxTabWidth > 0 && getMeasuredWidth() > mParent.mMaxTabWidth) {

        //comment this line

       // super.onMeasure(MeasureSpec.makeMeasureSpec(mParent.mMaxTabWidth, MeasureSpec.EXACTLY),heightMeasureSpec);

       //now do nothing , override by me for ActionBarTabs not rezize never
      //this method manage the size tabs, if you want you can count caracters to resize the size width
    }
}


0 commentaires

19
votes

réponse tardive, mais Google m'a amené ici, cela pourrait donc être utile toujours.

Vous pouvez choisir de faire défiler les onglets, ce qui, à mon avis, est préférable de changer de taille de police. P>

App: tabmode = "Scrollable" STRORT> P>

<android.support.design.widget.TabLayout
        android:id="@+id/tablayout_id"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        app:tabMode="scrollable"
        >


0 commentaires