迫使Vaadin组件占用它';处于不可见状态的s空间

迫使Vaadin组件占用它';处于不可见状态的s空间,vaadin,progress-indicator,Vaadin,Progress Indicator,我的Vaadin指示器中有一个标签和一个进度指示器。它在UI中动态显示。此进度指示器下方有一棵树 当程序动态地将进度指示器的可见性设置为true时,树会向下移动,UI会因该移动而抖动 有没有办法让一个Vaadin组件占用它的空间,即使它是不可见的,因此,当它变得可见时,它不能试图从其他UI组件借用空间 我要寻找的是一个类似于flex和actionscript编程中的setRendered(true)的功能 谢谢你的帮助。我终于得到了问题的答案。我只是用一个没有文本的虚拟可见标签替换了不可见的组件

我的Vaadin指示器中有一个标签和一个进度指示器。它在UI中动态显示。此进度指示器下方有一棵树

当程序动态地将进度指示器的可见性设置为true时,树会向下移动,UI会因该移动而抖动

有没有办法让一个Vaadin组件占用它的空间,即使它是不可见的,因此,当它变得可见时,它不能试图从其他UI组件借用空间

我要寻找的是一个类似于flex和actionscript编程中的setRendered(true)的功能


谢谢你的帮助。

我终于得到了问题的答案。我只是用一个没有文本的虚拟可见标签替换了不可见的组件

并交替使用它在可见和不可见之间切换

我,这是我得到的回应,来自:

使用Vaadin 7,如果将零部件的可见性设置为false,则零部件的信息根本不会发送到浏览器-就像零部件根本不存在于布局中一样

我能很快想出两个解决办法。如果知道要切换其可见性的构件的大小,则可以使用占位符构件,例如标签。将尺寸正确的标签放在您需要组件的位置。如果要将零部件设置为可见,请将标签替换为实际零部件

第二种选择是使用css。为要隐藏的组件应用css属性“可见性:隐藏”。请注意,该组件不是“真正”隐藏的。假设它是一个按钮。用户仍然可以检查DOM树并查看代码中的按钮,更改客户端组件的可见性(例如使用开发工具或firebug),然后查看和使用按钮,就好像它在布局中是可见的一样


我把它放在这里是因为人们可能会在这里添加一些更有用的答案。有关详细说明,请参见。

将以下示例用于要设置为不可见但保留其占用空间的组件:

Image home = new Image();
home.setSource(HOME);
home.addStyleName("visibility: hidden");


对组件说setEnabled(false)怎么样?也许可以通过将进度指示器和树添加到可以设置为静态高度的单独布局中来实现。谢谢大家的评论。。我会尝试让你知道它是否有效。
home.addStyleName("visibility: collapse");