Layout básico do Vaadin: cabeçalho e rodapé fixos + conteúdo rolável
Eu sou novo no Vaadin e estou tentando saber se ele pode atender às minhas necessidades de uma migração de projeto de aplicativo da web. Na verdade, já estou perdendo meu tempo com um objetivo simples: ter um layout com cabeçalhos e rodapés fixos e um conteúdo rolável no meio. Eu fiz um violino muito básico com o que eu quero:jsfiddle
Aqui está a principal classe Vaadin que eu criei:
public class MyVaadinUI extends UI {
// attributes
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = MyVaadinUI.class, widgetset = "testvaadin.aep.com.AppWidgetSet")
public static class Servlet extends VaadinServlet {
}
@Override
protected void init(VaadinRequest request) {
buildMainLayout();
}
private void buildMainLayout() {
final VerticalLayout mainLayout = new VerticalLayout();
mainLayout.setSizeFull();
//HEADER
final VerticalLayout headerLayout = new VerticalLayout();
final Resource res = new ThemeResource("img/logo.png");
final Image image = new Image(null, res);
headerLayout.addComponent(image);
//CONTENT
final VerticalLayout contentLayout = new VerticalLayout();
for(int i=0; i<80; i++){
contentLayout.addComponent(new Button("TEST " + i));
}
//FOOTER
final VerticalLayout footerLayout = new VerticalLayout();
footerLayout.addComponent(new Label("--------------------------- footer --------------------------"));
mainLayout.addComponent(headerLayout);
mainLayout.addComponent(contentLayout);
mainLayout.addComponent(footerLayout);
mainLayout.setExpandRatio(contentLayout, 1);
setContent(mainLayout);
}
}
A página exibida está OK na inicialização, mas quando eu rolar para baixo, o rodapé também rola (não é fixo).
No arranque:
Quando rolado:
Eu procurei muitas páginas sobre esse tópico, mas nunca vi nenhuma resposta correta. Isso parece ser bastante complicado em Vaadin, embora seja muito simples em HTML; Vaadin pode não atender às minhas necessidades. De qualquer forma, você sabe como posso conseguir esse comportamento? Obrigado!