我的Vaadin指标中有一个标签和一个Progess指标。它在UI中动态显示。此进度指标下方有一棵树。
当程序动态地将进度指示器的可见性设置为true时,树会向下移动,并且UI会因移位而抖动。
有没有办法让Vaadin组件占用它的空间,即使它是不可见的,因此,当它变得可见时,它不能试图从其他UI组件中借用空间?
我正在寻找的是一个类似于flex和actionscript编程中的setRendered(true)的功能。
感谢您的帮助。
答案 0 :(得分:4)
最后我得到了一个问题的答案。我只是用一个没有文字的虚拟可见标签替换了不可见的组件。
并使用它来在可见和不可见之间切换。
我asked the question in the Vaadin forum,这是我收到的回复,来自Kim Leppanen:
使用Vaadin 7时,如果将组件的可见性设置为false,则组件的信息根本不会发送到浏览器 - 就像组件根本不存在于布局中一样。
我可以快速提出两种解决方案。如果您知道要切换其可见性的组件的大小,则可以使用占位符组件 - 例如Label。将正确尺寸的标签放在您想要组件的位置。如果要将组件设置为可见,请将标签替换为实际组件。
第二个选项是使用css。对要隐藏的组件应用css属性“visibility:hidden”。请注意,组件不是“真正”隐藏的。让我们说它是一个按钮。用户仍然可以检查DOM树并查看代码中的按钮,更改客户端组件的可见性(例如,使用开发人员工具或firebug),然后查看并使用按钮,就像它在布局中可见一样
我把它放在这里因为人们可能会在那里添加一些更有用的答案。有关详细说明,请参阅this。
答案 1 :(得分:1)
将以下示例用于要设置为不可见但保留其占用空间的组件:
foreach ($z in $var) {
if ($z -like "adm*") {
$z | out-file c:\ahoy\supertest.csv -append
} elseif ($z -notlike "adm*") {
Get-ADGroup $z -Properties samaccountname,description,info |
select samaccountname,description,info |
Export-Csv c:\ahoy\supertest.csv -append -NoTypeInformation
}
}
OR
Image home = new Image();
home.setSource(HOME);
home.addStyleName("visibility: hidden");