我的 Vaadin 指标中有一个标签和一个进度指标。它在 UI 中动态可见。此进度指示器下方有一棵树。
当程序动态地将 Progress Indicator 的可见性设置为 true 时,树会向下移动,并且 UI 会因移动而抖动。
有没有办法让 Vaadin 组件占据它的空间,即使它是不可见的,因此,当它变得可见时,它不能尝试从其他 UI 组件借用空间?
我正在寻找的是一个类似于 flex 和 actionscript 编程中的 setRendered(true) 的功能。
谢谢你的帮助。
我的 Vaadin 指标中有一个标签和一个进度指标。它在 UI 中动态可见。此进度指示器下方有一棵树。
当程序动态地将 Progress Indicator 的可见性设置为 true 时,树会向下移动,并且 UI 会因移动而抖动。
有没有办法让 Vaadin 组件占据它的空间,即使它是不可见的,因此,当它变得可见时,它不能尝试从其他 UI 组件借用空间?
我正在寻找的是一个类似于 flex 和 actionscript 编程中的 setRendered(true) 的功能。
谢谢你的帮助。
最后我得到了我的问题的答案。我只是用没有文本的虚拟可见标签替换了不可见的组件。
并交替使用它在可见和不可见之间切换。
我在 Vaadin 论坛上提出了这个问题,这是我得到的来自Kim Leppanen的回复:
在 Vaadin 7 中,如果将组件的可见性设置为 false,则组件的信息根本不会发送到浏览器 - 就好像组件根本不存在于布局中一样。
我可以很快想出两个解决方案。如果您知道要切换其可见性的组件的大小,则可以使用占位符组件 - 例如标签。将尺寸正确的标签放在您想要组件的位置。如果要将组件设置为可见,则将标签替换为实际组件。
第二种选择是使用 css。为要隐藏的组件应用 css 属性“可见性:隐藏”。请注意,该组件不是“真正”隐藏的。假设它是一个按钮。用户仍然可以检查 DOM 树并查看代码中的按钮,更改客户端组件的可见性(例如使用开发人员工具或 firebug),然后查看和使用按钮,就好像它在布局中可见一样.
我把它放在这里是因为人们可能会在那里添加一些更有用的答案。有关详细说明,请参阅此。
将以下示例用于您想要设置为不可见但保持其占用空间的组件:
Image home = new Image();
home.setSource(HOME);
home.addStyleName("visibility: hidden");
或者
home.addStyleName("visibility: collapse");