Question

Dans GXT, j'ai un contrôle avec un important panel ajouté au composant de fond, essentiellement comme suit:

public class SamplePanel extends ContentPanel {

ContentPanel panel = new ContentPanel();    

public SamplePanel() {
    setBottomComponent(panel);
}

public void setVisible(boolean isVisible) {
    panel.setVisible(isVisible);
}

Le panneau est défini comme le « composant inférieur » parce qu'il a besoin de rester au bas du widget et visible à tout moment.

Le problème est, alors que la visibilité du panneau correctement permet de basculer, la zone « composant inférieur » ne redimensionne pas devenir plus petit et adapter les nouvelles dimensions de la zone inférieure.

Cependant, j'ai remarqué que la zone inférieure ne redimensionne lorsque je change manuellement la taille du widget avec la souris.

Y at-il moyen de forcer un redessiner programatically / repeindre / re-mise en page ... quoi que ce soit pour avoir le changement de composant bas pour refléter la nouvelle taille de son contenu?

J'ai essayé toutes ces choses et ils ne fonctionnent pas:

public void setVisibility(boolean isVisible) {
        panel.setVisible(isVisible);
        doLayout(true);
        recalculate();
        repaint();
    }

Merci

Était-ce utile?

La solution

Dans le dernier GXT que vous pouvez faire.

this.layout(true);

Sinon, vous pouvez déclencher un événement de Events.Resize.

Autres conseils

Je ne sais pas GXT, mais je GWT utiliser l'une des méthodes de force() ou forceLayout() sur mon panneau. Peut-être il y a une API similaire pour le faire!

HTH.

Avez-vous essayé d'utiliser la méthode setLayoutOnChange() du ConentPanel?

Je suggère regarder ceci: http://davidmaddison.blogspot.com/2008/12/gwt-rendering -process.html

Ce que vous pouvez essayer de faire est addListeners au Groupe spécial et essayer d'appeler panel.layout () il y a

scroll top