Wie mache ich vaadin keine Scrollbalken zeigen (bei Verwendung setSizeFull für Haupt-layout)
Angesichts der folgenden vaading Beispiel-app:
package net.kerba.vaadin7interface;
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.shared.ui.label.ContentMode;
import com.vaadin.ui.*;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
/**
* Created by IntelliJ IDEA.
* Date: 19.11.13
* Time: 20:48
*/
@Theme("runo")
public class MainUi extends UI {
@Override
protected void init(VaadinRequest request) {
GridLayout main = new GridLayout();
main.setSizeFull();
main.setMargin(false);
Panel panel = new Panel("Working area");
main.addComponent(panel, 0, 0);
//magic goes in 2 lines below
panel.setWidth("500px");
panel.setHeight("300px");
panel.setContent(new Label("foobar");", ContentMode.PREFORMATTED));
main.setComponentAlignment(panel, Alignment.MIDDLE_CENTER);
setContent(main);
}
@WebServlet(name = "vaadinServlet",
urlPatterns = {"/app/*", "/VAADIN/*"},
asyncSupported = false,
initParams = {@WebInitParam(
name = "widgetset",
value = "com.vaadin.DefaultWidgetSet"
)}
)
@VaadinServletConfiguration(productionMode = false, ui = MainUi.class)
public static class Servlet extends VaadinServlet {
}
}
Wenn ich % für die Breite und Höhe:
panel.setWidth("50%");
panel.setHeight("50%");
Ich bekomme beide Bildlaufleisten:
Wenn ich Pixel für Breite und Höhe:
panel.setWidth("500px");
panel.setHeight("300px");
Den beiden scrollbars sind Weg:
Wie kann ich mit % für Breite und Höhe ein und machen Vaadin nicht zeigen, dass Scrollbalken?
Vaadin 7.1.8
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich gefunden, dass die Einführung Ihre eigenen Themen durch die Erweiterung z.B. runo oder Rentier zahlt sich immer aus. Dann können Sie deklarieren Sie eine Klasse auf Sie
panel
werden und seine Breite/Höhe in CSS statt im code. Auf diese Weise ist es der browser, der legt die Größe, bevor irgendwelche JS ausführt und so ist es bekannt vor, dass JS-scrollbars sind in diesem Fall nicht erforderlich.Ist es denn mit GridLayout schreiben
es setzt in der Tat gridlayout-Schlitz in der Mitte des Bildschirms, so dass es 100% die Größe des Bildschirms und von diesen 50% ist Ihre panel - für mich scheint es ein Fehler zu sein...
Die Abhilfe wäre die Verwendung unterschiedlicher layout, mit VerticalLayout wird es funktionieren. Fake oder grid-layout mit CustomLayout.
Ich bin mir nicht ganz sicher über die Lösung, aber beim beziehen online. Ich fand ein paar links, die ich denke, kann Ihnen helfen, das problem zu lösen:
Link 1
Link 2
Wonach
macht es in der Mitte des Bildschirms ich.e, eigentlich sind die Hälfte der panel definiert.