2009-11-21 9 views
5

Ho una finestra di dialogo GWT che è simile al seguente:GWT allineamento orizzontale non funziona

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); 
    } 
} 

Per qualche motivo il pannello 'pulsanti' non obbedisce l'impostazione horizontalAlignment; si attacca al lato sinistro del pannello esterno. Tuttavia, obbedisce alle impostazioni vertialAlignment. Qualche idea? Grazie!

+0

L'allineamento lavora in GWT 1.7.1, ospitato browser in modalità e compilato in Chrome. – Fedearne

risposta

4

Le tabelle non rispettano la proprietà di allineamento orizzontale del genitore. Invece, imposta i margini destro della tabella figlio a sinistra su "auto".

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

Ulteriori informazioni: Center a table with CSS

+0

Grazie Matt! E se volessi allineare gli elementi nei pulsanti a destra? – Neil

+0

Bello, grazie Mat. L'impostazione dei margini su "auto" funziona anche per una tabella all'interno di un controllo del pannello ASP.NET. – Dhaust

Problemi correlati