2010-07-16 6 views
3

J'ai un panneau horizontal avec 3 panneaux verticaux à l'intérieur. Dans les panneaux verticaux il y a des widgets personnalisésGwt VerticalPanel Cell Height

J'ai besoin que tous les panneaux verticaux aient la même hauteur (même s'ils ont un nombre différent de widgets à l'intérieur) et un bouton dans l'espace vide. Donc, je mets tous les panneaux hauteur = 100% et les boutons hauteur = 100%. Le problème est que la hauteur des cellules du panneau vertical est plus grande que mes widgets, donc il a laissé un espace entre tous les widgets des panneaux verticaux.

Here is an example

Comment puis-je régler les cellules verticalpanels hauteur à ma taille de widgets. Mes widgets ne sont pas des images comme dans l'exemple, donc je ne peux pas connaître la hauteur des widgets.

J'ai beaucoup de temps dans ce problème, anyidea aidera Thx !!!!

Répondre

0

N'a pas essayé, mais cela devrait fonctionner ou tout au moins vous donner quelque chose à commencer:

VerticalPanel.setCellHeight(yourWidget, Integer.toString(yourWidget.getElement().getOffsetHeight())+"px"); 

Ce qu'il fait: setCellHeight() définit la hauteur de la cellule le widget est en vous passez à la fonction.
Le deuxième paramètre de la fonction est la hauteur de cette cellule. Cela devient un peu difficile parce que vous ne connaissez pas la hauteur. Avec getElement() vous obtenez l'élément de ce widget dans le DOM du navigateur, sur cet élément vous pouvez appeler getOffsetHeight(). GetOffsetHeight() renvoie un entier de sorte que vous avez besoin de le convertir en String et de lui concaténer "px" pour que le navigateur sache que c'est un pixel et non un em ou quelque chose comme ça.

+0

thx, avec getOffsetHeight Je peux obtenir la hauteur des widgets. Mais si je l'utilise après avoir ajouté le widget au panneau, la hauteur est 0px. Si j'utilise la méthode dans onLoad(), elle calcule la hauteur du widget mais avant d'appliquer le style. Quand je devrais utiliser la méthode pour obtenir la hauteur du widget après qu'il applique le style ??? encore une fois !!! – david

+0

il semble logique de l'utiliser pour la taille de la cellule. Une autre exigence que j'ai est de régler l'alignement horizontal, et fait de la même manière. Mais .... aucun effet, ça ne marche pas, je ne sais pas encore pourquoi, si je trouve une réponse, je posterai plus tard. –

+0

Trouvé ce que c'est, quelque chose de très simple. Juste ajouter d'abord (le widget) et mettre en page plus tard les valeurs (aligment horizontal et hauteur), donc: 'verticalPanel.add (widget);' 'vertialPanel.setCellHeight (widget," 30px ");' –