如何在Vaadin中为子窗口设置最小宽度?

时间:2015-06-22 10:45:11

标签: layout size vaadin

在我的Vaadin代码中,我想在我的子窗口中添加最小宽度功能。 我设置我的主窗口的子窗口大小%25的宽度,但我不希望它非常小。我想要它至少“125px”。我如何用java代码设置它?

public class Awindow extends Window{
...
public Awindow(...)
    setModal(true);
    setCaption("Hello");
    this.setHeight("100%");
    this.setWidth("25%");// I don't want it to be %25 all the time,I want it to remain still after "150px".

    VerticalLayout layout = new VerticalLayout (
        memberTable,
        new HorizontalTable(
             createButton,
             eraseButton)
    );
    layout.setSpacing(true);
    ...
    this.setContent(layout);

3 个答案:

答案 0 :(得分:0)

我知道唯一可行的解​​决方案就是使用css。

您可以为.v-window类添加一个css,例如:

.v-window {
      min-width: 125px !important;
 }

答案 1 :(得分:0)

如果你想完全以编程方式完成 1)使用programmically

将您的CSS样式添加到页面样式
UI.getCurrent().getPage().getStyles().add(".min125px{min-width: 125px !important;}");

2)将此样式( min125px )添加到按钮

createButton.addStyleName("min125px");
eraseButton.addStyleName("min125px");

答案 2 :(得分:0)

只要Vaadin未实现https://github.com/vaadin/framework/issues/1360,您可能需要查看以下插件:https://vaadin.com/directory#!addon/restrain。这与其他答案提出的基本相同,但有一个很好的服务器端api。

例如:

<div id="wrapper">
    <div id="firstPair">
        <div style="width: 200px; float: left">1</div>
        <div style="width: 200px; float: left">2</div>
    </div>
    <div id="secondPair">
        <div style="width: 200px; float: left">3</div>
        <div style="width: 200px; float: left">4</div>
    </div>
</div>