【发布时间】:2016-04-15 08:26:12
【问题描述】:
我在主 UI 中添加了一个弹出窗口,如下所示:
Window component = new Window();
UI.getCurrent().addWindow(component);
现在,我希望我的弹出窗口水平居中,例如距屏幕顶部 40 像素。据我所知,Vaadin 有 4 种方法来定位我的窗口。
component.center()
component.setPosition(x, y)
component.setPositionX(x)
component.setPositionY(y)
这些都不是我真正想要的。起初我希望 setPositionY 可以帮助我。这确实让我可以从顶部获得正确的距离,但是 x 位置现在设置为 0,我希望它居中。
如果我能够计算 x 位置应该是什么,setPosition 可能会有所帮助,但这需要我知道组件的宽度(以像素为单位),但 component.getWidth 只告诉我 100%。
接下来我尝试在组件上使用 CSS 样式,编写和显式的 css 规则并使用 addStyleName 将其添加到组件中。似乎 Vaadin 用自己的默认值覆盖了我在 CSS 中编写的任何内容......
知道如何正确定位我的 Window 组件吗?
【问题讨论】:
-
我删除了我的答案,因为它是错误的。事情似乎是,
center()在客户端执行。你知道弹出窗口的宽度吗? (通常你必须定义宽度) -
不,我不知道弹出窗口的宽度,它取决于内容。正如我提到的,组件上的 getWidth 方法没有多大帮助,因为它只是返回 100 %。