VerticalLayout má ve výchozím nastavení šířku 100% a výšku nedefinovánu (undefined). To znamená, že na šířku se roztáhne do velikosti okna prohlížeče a výška se přizpůsobí velikosti komponent, které obsahuje. Pokud je výška větší než okno prohlížeče, objeví se posuvník.
final VerticalLayout layout = new VerticalLayout(); Label l1 = new Label("Ahoj"); Label l2 = new Label("Nazdar"); Label l3 = new Label("Čau"); layout.addComponents(l1, l2, l3); setContent(layout);
Pozicování komponent se provádí pomocí metody setComponentAlignment(). Tato metoda se volá až po přidání komponent do layoutu.
final VerticalLayout layout = new VerticalLayout(); Label l1 = new Label("Ahoj"); Label l2 = new Label("Nazdar"); Label l3 = new Label("Čau"); layout.addComponents(l1, l2, l3); layout.setComponentAlignment(l1, Alignment.MIDDLE_CENTER); layout.setComponentAlignment(l2, Alignment.TOP_LEFT); layout.setComponentAlignment(l3, Alignment.BOTTOM_RIGHT); setContent(layout);
Na přechozím obrázku je vidět, že zarovnání na CENTER zabralo, ale umístění MIDDLE nemělo vliv. Pokud nastavíte vertical layoutu výšku na 100%, zabere celé okno prohlížeče a potom i MIDDLE bude mít význam.
final VerticalLayout layout = new VerticalLayout(); layout.setHeight(100, Unit.PERCENTAGE); Label l1 = new Label("Ahoj"); Label l2 = new Label("Nazdar"); Label l3 = new Label("Čau"); layout.addComponents(l1, l2, l3); layout.setComponentAlignment(l1, Alignment.MIDDLE_CENTER); layout.setComponentAlignment(l2, Alignment.TOP_LEFT); layout.setComponentAlignment(l3, Alignment.BOTTOM_RIGHT); setContent(layout);
Problém je ale v tom, že pokud budou komponenty zabírat více místa, neobjeví se posuvník a komponenty se budou překrývat.