2009-11-21 9 views
5

Tengo un cuadro de diálogo GWT que se parece a lo siguiente:gwt alineación horizontal no funciona

public class FooDialog extends DialogBox { 

public FooDialog() { 
     setText("Foo Dialog"); 
     VerticalPanel outer = new VerticalPanel(); 
     outer.setBorderWidth(3); 
     outer.setSize("400px", "200px"); 
     outer.setHorizontalAlignment(HasAlignment.ALIGN_CENTER); 
     outer.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE); 

     Button cancelButton = new Button("Cancel", new ClickHandler() { 
     public void onClick(ClickEvent event) { 
     hide(); 
     } 
    }); 

     HorizontalPanel buttons = new HorizontalPanel(); 
     buttons.setBorderWidth(3); 
     buttons.add(cancelButton); 

     outer.add(buttons); 

     setWidget(outer); 
    } 
} 

Por alguna razón panel de los 'botones' que no obedece al ajuste horizontalAlignment; se pega al lado izquierdo del panel exterior. Sin embargo, obedece a la configuración de vertialAlignment. ¿Algunas ideas? ¡Gracias!

+0

La alineación trabaja en GWT 1.7.1, fue sede del navegador de modo y compilado en Chrome. – Fedearne

Respuesta

4

Las tablas no respetan la propiedad de alineación horizontal del elemento principal. En su lugar, establezca los márgenes derechos & de la tabla secundaria en "automático".

buttons.getElement(). GetStyle(). SetProperty ("marginLeft", "auto"); buttons.getElement(). GetStyle(). SetProperty ("marginRight", "auto");

Más información: Center a table with CSS

+0

Gracias Matt! ¿Y si quisiera alinear los elementos en botones a la derecha? – Neil

+0

Bien, gracias Mat. Establecer márgenes en 'automático' también funciona para una tabla dentro de un control de Panel ASP.NET. – Dhaust

Cuestiones relacionadas