Vaadin-Basis-layout: fixed header und footer + scrollable Inhalt
Ich bin neu in Vaadin und zu versuchen, zu wissen, ob es für meine Bedürfnisse für eine webapp-Projekt migration.
Eigentlich bin ich schon zu verlieren, meine Zeit auf einem einfachen Ziel: ein layout mit festen Kopf-und Fußzeilen, und eine scrollbare Inhalt in der Mitte.
Ich machte eine sehr einfache Geige mit, was ich will:
jsfiddle
Hier ist die Haupt-Vaadin-Klasse, die ich kam mit:
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);
}
}
Die angezeigte Seite ist OK auf Start, aber wenn ich scrollen Sie nach unten, in der Fußzeile auch scrolls (es ist nicht festgelegt).
Auf Start:
, Wenn gescrollt:
Stöberte ich auf vielen Seiten zu diesem Thema, aber ich hab mich nie sehen, keine richtige Antwort. Das scheint ziemlich kompliziert, in Vaadin, obwohl es ist sehr einfach in HTML; Vaadin kann nicht meine Bedürfnisse anzupassen.
Eh, weißt du, wie kann ich das erreichen dieses Verhalten?
Danke!
- wenn Sie lieber das hantieren mit html, dann vielleicht ein CustomLayout helfen würde (siehe stackoverflow.com/questions/9563406/...).
- Hi, danke für deine Antwort aber eigentlich möchte ich nicht gehen, Brauch für meine erste Erfordernis.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine
Panel
erstellen eines scrollbaren center content-Bereich. Siehe das Beispiel unten.Für die Tafel zu arbeiten, alles, was in der Hierarchie muss
setSizeFull
(oder gleichwertig) und der Inhalt des Fensters muss nicht (in dem BeispielmainLayout
undcontentPanel
sind 100%, abercontentLayout
ist keine (implizite))(läuft standalone mit
spring run vaadin.groovy
)CSSLayout
und befassen sich mit der Einrichtung in CSS. - Panel ist groß, wenn Sie es nicht mögen, wenn man mit der browser-Ende obwohl.