Bonjour,
pour commencer, voici ce que j'utilise: Eclipse Helios, GWT 2.1.1 et GXT 2.2.1.
J'essaie de faire un LayoutContainer dont la hauteur dépend de son contenu. Donc, on ne spécifie pas directement sa taille.
Dans les exemples de www.sencha.com, il est spécifié que mettre le LayoutData:height=-1 donne le résultat que je recherche mais ça ne semble pas marcher du tout.
Une option, qui me saute aux yeux, autoHeight semble théoriquement fonctionner, mais jusqu'a un certain point seulement, et c'est la que ca me bogue.
Si le contenu du LayoutContainer est un Widget quelconque, il n'y a pas de problème.
Si ce même LayoutContainer est contenu à l'intérieur d'un autre LayoutContainer, ça ne marche pas avec ce dernier.
Voici un exemple simple de ce que j'aimerais présenter mais qui ne fonctionne pas.
Notez que la solution de définir la taille de mon LayoutContainer principale est à exclure parce-que le contenu des sous-LayoutContainers peut changer au runtime.
Pour ceux qui utilisent GWT Designer, c'est très simple de voir le problème. Tout se situe autour de l'option autoHeight (deferHeight semble donner le même résultat).
J'ai ce problème depuis des mois, je ne sait plus ou donner de la tête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.layout.RowLayout; import com.extjs.gxt.ui.client.Style.Orientation; import com.extjs.gxt.ui.client.widget.layout.RowData; import com.extjs.gxt.ui.client.Style; import com.extjs.gxt.ui.client.util.Margins; import com.extjs.gxt.ui.client.widget.button.Button; public class Test extends LayoutContainer { public Test() { setAutoHeight(true); setLayout(new RowLayout(Orientation.HORIZONTAL)); LayoutContainer layoutContainer = new LayoutContainer(); layoutContainer.setAutoHeight(true); Button button = new Button("New Button"); layoutContainer.add(button); layoutContainer.setLayout(new RowLayout(Orientation.VERTICAL)); add(layoutContainer, new RowData(0.2, -1.0, new Margins())); layoutContainer.setBorders(true); LayoutContainer layoutContainer_1 = new LayoutContainer(); layoutContainer_1.setAutoHeight(true); Button button_1 = new Button("New Button"); layoutContainer_1.add(button_1); Button button_2 = new Button("New Button"); layoutContainer_1.add(button_2); Button button_3 = new Button("New Button"); layoutContainer_1.add(button_3); add(layoutContainer_1, new RowData(0.8, -1.0, new Margins())); layoutContainer_1.setBorders(true); } }
Si quelqu'un à une suggestion, n'hésitez pas!
Merci.
Partager