В Vaadin Flow не существует компонента, который по сути является прокручиваемым макетом. В Vaadin 8 это было сделано с помощью Panel.
Есть ли способ получить прокручиваемый компонент в Vaadin Flow?
В Vaadin Flow не существует компонента, который по сути является прокручиваемым макетом. В Vaadin 8 это было сделано с помощью Panel.
Есть ли способ получить прокручиваемый компонент в Vaadin Flow?
Изменить: я опубликовал надстройку здесь, который предоставляет класс VerticalScrollLayout
, а также класс HorizontalScrollLayout
. Если есть предложения по улучшению, не стесняйтесь обращаться ко мне или оставлять комментарии здесь.
Да, это возможно, хотя не существует компонента, который бы делал это автоматически.
Лучше всего разместить VerticalLayout (для вертикальной полосы прокрутки) внутри другого компонента и установить свойство display
этого VerticalLayout от flex
до block
. (кредиты Диего Санс Виллафруэле на форуме vaadin)
Я создал свой собственный VerticalScrollLayout
класс, который делает все это за вас, поэтому использовать его в представлении так же просто, как использовать простой VerticalLayout
public class VerticalScrollLayout extends VerticalLayout {
private VerticalLayout content;
public VerticalScrollLayout(){
preparePanel();
}
public VerticalScrollLayout(Component... children){
preparePanel();
this.add(children);
}
private void preparePanel() {
setWidth("100%");
setHeight("100%");
getStyle().set("overflow", "auto");
content = new VerticalLayout();
content.getStyle().set("display", "block");
content.setWidth("100%");
content.setPadding(false);
super.add(content);
}
public VerticalLayout getContent(){
return content;
}
@Override
public void add(Component... components){
content.add(components);
}
@Override
public void remove(Component... components){
content.remove(components);
}
@Override
public void removeAll(){
content.removeAll();
}
@Override
public void addComponentAsFirst(Component component) {
content.addComponentAtIndex(0, component);
}
}