Ваадин 13 Flex Grow - PullRequest
       17

Ваадин 13 Flex Grow

1 голос
/ 17 апреля 2019

У меня проблемы с Vaadin HorizonalLayout - я хочу, чтобы левый компонент занимал большую часть горизонтального пространства, как показано в этом Fiddle

Однако, когда я запускаю свое приложение Vaadin, эти два компонента делят экран поровну.

Мой код:

    HorizontalLayout layout = new HorizontalLayout();
    VerticalLayout left = new VerticalLayout(new Span("LEFT"));
    VerticalLayout right = new VerticalLayout(new Span("RIGHT"));

    layout.add(left, right);
    layout.setPadding(false);
    layout.setMargin(false);
    layout.setFlexGrow(1.0, left);
    layout.setFlexGrow(0,right);

Что я делаю не так?

1 Ответ

1 голос
/ 18 апреля 2019

Это работает, если вы даете ширине HorizontalLayout определенное значение (например, 100%), в то время как для ширины содержимого VerticalLayout установлено значение undefined («как можно меньше»):

HorizontalLayout layout = new HorizontalLayout();
layout.setWidthFull();
VerticalLayout left = new VerticalLayout(new Span("LEFT"));
VerticalLayout right = new VerticalLayout(new Span("RIGHT"));
left.setSizeUndefined();
right.setSizeUndefined();

layout.add(left, right);
layout.setPadding(false);
layout.setMargin(false);
layout.setFlexGrow(1.0, left);
layout.setFlexGrow(0,right);
add(layout);

Результат:

enter image description here

...