2009-11-21 8 views
5

J'ai une boîte de dialogue GWT qui ressemble à ce qui suit:panneau GWT alignement horizontal ne fonctionne pas

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

Pour une raison quelconque le panneau «boutons n'obéit pas le paramètre horizontalAlignment; il colle sur le côté gauche du panneau externe. Il obéit cependant au paramètre vertialAlignment. Des idées? Merci!

+0

L'alignement fonctionne dans GWT 1.7.1, le navigateur en mode hébergé et compilé dans Chrome. – Fedearne

Répondre

4

Les tables ne respectent pas la propriété d'alignement horizontal du parent. Au lieu de cela, définissez les marges de droite & gauche de la table enfant à "auto".

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

Plus d'info: Center a table with CSS

+0

Merci Matt! Et si je voulais aligner les éléments dans les boutons vers la droite? – Neil

+0

Nice, merci Mat. Définir les marges sur 'auto' fonctionne également pour une table dans un contrôle Panel ASP.NET. – Dhaust

Questions connexes