6
votes

Comment forcer une redessinée / re-mise en page dans EXT GWT (gxt)?

dans gxt, j'ai un contrôle avec un panneau important ajouté à la composante inférieure, comme celui-ci:

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


0 commentaires

5 Réponses :


1
votes

Je ne sais pas sur gxt, mais dans GWT, j'utiliserais l'un des Force () ou Forcelayout () Méthodes sur mon panneau. Peut-être qu'il y a une API similaire à faire ça!

hth.


3 commentaires

Hmm ... Je n'arrive pas à trouver une méthode .Force () ou .Forcelayout () sur ContentPanel (la superclasse de cette classe que j'utilise). Quelle classe expose .force ()?


@Cuga Quelle version de gxt utilisez-vous? J'utilise GXT 4.0.2 et la classe ContentPanel a la méthode Forcelayout (). Cela a fonctionné pour moi l'utiliser.


@vhbazan ... Je ne dunno, c'était il y a 7 ans. Mais si quelqu'un utilise 4.0.2 et qui aide, alors bonne affaire



0
votes

Je suggérerais de regarder ceci: http://davidmaddison.blogspot.com/2008/12/gwt-Rendance -Process.html

Ce que vous pouvez essayer de faire est d'ajouter des addlisteners au panneau et essayez d'appeler le panneau.Layout () là


0 commentaires

0
votes

Cet article prétend que les composants supérieurs et inférieurs à ne pas Participer à la mise en page Une fois que le panneau a été rendu et suggère une solution de contournement manuelle (en utilisant Rowlayout) ou définir manuellement la taille du panneau.

envisagez de trouver les tailles du parent et de l'appelant omnimètre (largeur, hauteur)


0 commentaires

8
votes

Dans le dernier gxt, vous pouvez faire.

this.layout(true);


2 commentaires

Ce truc de l'événement Redimensionnez le feu est si subtil, alors hacky, si caché, mais c'est tellement freaking fonctionne ...


Je sais que c'est une vieille question, mais je rencontre un problème similaire et je ne trouve aucun exemple de comment utiliser l'événement Event.Resize. Avez-vous un échantillon de code pour inclure dans votre réponse? Merci d'avance.



1
votes

Avez-vous essayé d'utiliser la méthode setlayoutonChange () de conentpanel ?


0 commentaires