2010-12-11 4 views

Répondre

5

Eh bien, si vous voulez juste quelque chose de rapide et sale, cela devrait faire le travail:

LabelField lField = new LabelField("text") 
    { 
     protected void layout(int width, int height) { 
      super.layout(width, height); 
      this.setExtent(HARD_CODED_WIDTH, this.getHeight()); 
     } 
    }; 

Mais la bonne façon de le faire est de choisir (ou écrire) un gestionnaire de mise en page qui fait ce que vous voulez avec quelques-uns flexibilité pour tenir compte des différentes tailles d'écran et d'autres choses. RIM a quelques échantillons décents sur l'écriture de votre propre gestionnaire. Rechercher JustifiedEvenlySpacedHorizontalFieldManager. Ou jetez un oeil à penser blackberry: http://www.thinkingblackberry.com/archives/116

+0

L'URL ne fonctionne plus. J'ai trouvé un exemple ici http://code.google.com/p/blackberry-douban-radio/source/browse/trunk/DoubanRadio/src/fm/douban/component/JustifiedEvenlySpacedHorizontalFieldManager.java?r=3. Est-ce la même? –

1

La réponse de cjp est corrent mais j'y ajoute plus dedans.

Si la longueur de votre texte est plus et se couper avec le code ci-dessus, vous pouvez faire comme ci-dessous le code:

LabelField lField = new LabelField("text") 
{ 
    protected void layout(int width, int height) { 
     super.layout(width, height); 
     this.setExtent(HARD_CODED_WIDTH, this.getHeight()); 
    } 
    public int getPreferredWidth() { 
    return HARD_CODED_WIDTH; 
} 
}; 

code ci-dessus ne sera pas coupé le texte si la longueur du texte est plus de la largeur que vous avez définir. Et dans ce cas, le texte passe à la ligne suivante.

J'espère que vous avez compris.

Questions connexes