2017-09-19 3 views
1

Toujours sur mon sidemenu de there, j'ai résolu le texte non broker avec une fonction personnalisée qui modifie le texte.Comment réduire la largeur d'un objet TextArea utilisé comme chaîne?

Maintenant, je suis coincé avec la largeur du composant. Je l'ai changé d'un SpanLabel à un TextArea afin d'avoir plus de contrôle sur son comportement, mais voici mon problème: la largeur TextArea est trop grande comme indiqué sur la capture d'écran (mettez un UIID ContentContainer sur pour voir l'espace occupé par le TextArea).

enter image description here

Comme vous pouvez le voir, le premier composant a un trop grand TextArea. J'ai mis le nombre de colonnes du TextArea à la longueur du firstRow + 1, mais il ne semble pas en tenir compte.

Le composant est le BorderLayout avec un centre de croissance ScaleImageLabel et le TextArea au sud. Est-ce un moyen d'avoir une meilleure largeur pour le TextArea? Je l'aurais aligné avec l'image et avec la zone enveloppée près du texte, mais je ne sais vraiment pas comment y parvenir ...

Merci d'avance!

Répondre

3

Ma suggestion est d'utiliser GridLayout pour des tailles égales ou TableLayout avec des contraintes pour différentes tailles pour les composants gauche et droit. Cela empêchera TextArea de dépasser une limite.

Un exemple sera:

//GridLayout 
Container cont = GridLayout.encloseIn(4, cmpL1, cmpR1, cmpL2, cmpR2) 

//OR 

//TableLayout with Constraint 
TableLayout tl = new TableLayout(2, 2); 

Container cont = new Container(tl); 
cont.add(tl.createConstraint().widthPercentage(50), cmpL1); 
cont.add(tl.createConstraint().widthPercentage(50), cmpR1); 
cont.add(cmpL2); 
cont.add(cmpR2); 
+1

Je fixe le code de la table depuis la première ligne définit la largeur que vous n'avez pas besoin d'une contrainte sur la deuxième ligne. Vous ne devriez pas non plus réutiliser les instances de contraintes ... –

+0

Génial, merci @ShaiAlmog. – Diamond

+0

Merci, cela fonctionne bien avec le widthPercentage :) –