【问题标题】:How to set subwindow height dynamically in Vaadin如何在 Vaadin 中动态设置子窗口高度
【发布时间】:2015-02-13 14:50:59
【问题描述】:

我的 vaadin 应用程序中有一个非常奇怪的问题。我正在从主窗口打开一个子窗口,该子窗口在后台执行一些操作并显示一些新内容,该过程同样会继续更改内容。

问题是每个内容的数量不同,因此应相应设置每个内容的高度。如何设置窗户的高度?自动高度不起作用。

PS:我不是每次都使用新窗口,而是修改内容。

编辑:也像自定义 CSS

Height: auto; overflow: auto

不工作。

【问题讨论】:

  • 你是说,openend窗口保持开始的大小,后来改变它不再影响高度?
  • 是的。为简单起见,首先我显示 100 行,子窗口默认提供滚动条。下一个内容是 10 行,因此应该相应地设置正在发生的高度。同样,如果下一个内容是 100 行,那么它不会显示滚动条。这怎么可能?

标签: liferay vaadin liferay-6


【解决方案1】:

这对我有用:

Window window = new Window("Window caption");                 
window.setResizable(false);                                   
window.setHeightUndefined();                                  


final VerticalLayout vl = new VerticalLayout();               
vl.setMargin(true);                                           
vl.setHeightUndefined();                                      
button = new Button("Add component");                         
button.addClickListener(new Button.ClickListener() {          
    public void buttonClick(Button.ClickEvent event) {        
        vl.addComponent(new Label("Thank you for clicking")); 
    }                                                         
});                                                           
vl.addComponent(button);                                      
button = new Button("Remove component");                      
button.addClickListener(new Button.ClickListener() {          
    public void buttonClick(Button.ClickEvent event) {        
        vl.removeComponent(vl.getComponent(2));               
    }                                                         
});                                                           
vl.addComponent(button);                                      
window.setContent(vl);

这里重要的是窗口和布局的高度是未定义的。

【讨论】:

  • 我在上面试过了,但还是有同样的问题。还有其他建议吗?
猜你喜欢
  • 2019-12-12
  • 2018-11-12
  • 1970-01-01
  • 1970-01-01
  • 2011-09-27
  • 2021-01-20
  • 2018-05-01
  • 2015-02-26
  • 1970-01-01
相关资源
最近更新 更多