2013-10-28 2 views
1

У меня есть пользовательский компонент JavaScript (размещенный в VerticalLayout), высота которого динамически растет с пользовательским вводом - подобно полям редактирования stackoverflow с предварительным просмотром под ним.Проблемы с пользовательским компонентом JavaScript Vaadin, переполненным на другие компоненты в VerticalLayout

Проблема заключается в том, что «предварительный просмотр» перекрывается с содержимым компонентов, размещаемых под пользовательским компонентом при достижении определенного размера. Представьте, что «предварительный просмотр» будет перемещаться за поле тегов и отправить кнопку в stackoverflow при записи более 4 строк.

css для компонента JavaScript не содержит информации о размерах (около ширины: 100%), а также нет VerticalLayout.

Вопрос: Как указать в Vaadin VerticalLayout, что компоненты должны перемещаться вниз, если размер более раннего компонента был изменен?

Или у вас есть другие идеи, как решить эту общую ситуацию?

ответ

0

Вы можете использовать setSizeFull() в VerticalLayout, чтобы он увеличивался на добавляемом к нему содержимом.

+0

VerticalLayout уже установлен в setSizeFull, и это не помогает. Проблема в том, что положение других компонентов в VerticalLayout кажется фиксированным и не изменится при изменении одного из компонентов. – xwoker

1

Проблема была надзором с .setStyleName("myComponentInstance");, которая использовалась в ExampleView для настраиваемого компонента. При проверке ExampleView.css я узнал, что кто-то определил определенный размер и высоту, которые мешали стилизации самого настраиваемого компонента - с очень запутанными результатами.

Так что, если вы наткнулись в подобную ситуацию при разработке компоненты JavaScript Vaadin:

  1. Снимите myComponent.setStyleName("myComponentInstance") в использовании кода, чтобы избежать всех помех с вашим собственным стилем.

  2. Не указывайте значение css height, но в зависимости от размера по умолчанию в компоненте VerticalLayout.

Смежные вопросы