GXT (Ext-GWT): problèmes de Mise en page avec ContentPanel

J'ai un ContentPanel qui s'adapte à l'ensemble de la fenêtre. Il a un topComponent, un widget dans le centre, et un bottomComponent.

Je reçois des problèmes de mise en page, lorsque j'essaie d'ajouter des widgets à la topComponent après la ContentPanel a été rendue une fois:

public void onModuleLoad() {

    final Viewport viewport = new Viewport();
    viewport.setLayout(new FitLayout());

    final ContentPanel contentPanel = new ContentPanel(new FitLayout());
    contentPanel.setHeaderVisible(false);

    final LayoutContainer topContainer = new LayoutContainer(
            new FlowLayout());

    final Button buttonOne = new Button("Top:One");
    topContainer.add(buttonOne);

    contentPanel.setTopComponent(topContainer);
    contentPanel.add(new Button("Center"));
    contentPanel.setBottomComponent(new Button("Bottom"));

    viewport.add(contentPanel);
    RootPanel.get().add(viewport);

    //Later, add a second button to the topComponent ...
    Scheduler.get().scheduleDeferred(new ScheduledCommand() {
        @Override
        public void execute() {
            final Button buttonTwo = new Button("Top:Two");
            topContainer.add(buttonTwo); //Doesn't show up at first.

            topContainer.layout(); //Now, buttonTwo shows up. But we have
                            //a new problem: the "Bottom" button disappears...

            contentPanel.layout(true); //This doesn't do anything, BTW.
        }
    });
}

Une chose intéressante à ce sujet est que la mise en page corrige de lui-même, dès que j'ai redimensionner la fenêtre du navigateur. Que puis-je faire pour le faire re-mise en page correctement immédiatement (j'ai essayé d'ajouter plusieurs layout() appels, etc. en plusieurs endroits et de combinaisons, mais je n'ai pas eu de chance jusqu'à présent.)

(Je suis en utilisant GWT 2.1.1 avec GXT 2.2.1.)

Que signifie "arriver problèmes de mise en page"?
Comme les commentaires dans mon code mentionner: Au premier buttonTwo ne s'affiche pas. Puis, quand je l'appelle layout(), il s'affiche. Mais maintenant, le "Bas" bouton disparaît. Dès que j'ai redimensionner la fenêtre manuellement (même juste d'un pixel), la mise en page corrige de lui-même, c'est à dire tous les boutons apparaissent.

OriginalL'auteur Chris Lercher | 2011-04-05