Tengo un Panel de contenido que se ajusta a toda la ventana. Tiene un topComponent, un widget en el centro y un bottomComponent.GXT (Ext-GWT): Problemas de diseño con ContentPanel
estoy recibiendo problemas de diseño, cuando intento agregar widgets a la topComponent después de la ContentPanel se ha prestado una vez:
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.
}
});
}
Un aspecto interesante de esto es que el diseño se corrige solo, tan pronto a medida que cambio el tamaño de la ventana del navegador. ¿Qué puedo hacer para que se vuelva a diseñar correctamente de forma inmediata? He intentado agregar varias llamadas layout()
, etc. en varios lugares y combinaciones, pero hasta ahora no he tenido suerte.)
(Estoy usando GWT 2.1.1 con GXT 2.2.1.)
¿Qué significa "tener problemas de diseño"? –
@Travis: Al igual que los comentarios en mi código, mencione: En el primer botón, Two no aparece. Luego, cuando llamo a layout(), aparece. Pero ahora el botón "Inferior" desaparece.Tan pronto como cambio el tamaño de la ventana manualmente (incluso solo un píxel), el diseño se corrige a sí mismo, es decir, se muestran todos los botones. –