GWT弹出setGlassEnabled(true)不起作用

时间:2011-07-16 16:52:07

标签: gwt popup

我正在创建一个与同一文本相同的弹出式面板,我想禁用背景并使其变灰。我读到了关于setGlassEnabled的内容,但它不起作用,有人可以帮忙吗? PS。弹出窗口正确可视化。

PopupPanel popup = new PopupPanel(infoType);
popup.center();
popup.setGlassEnabled(true);
popup.show();

3 个答案:

答案 0 :(得分:9)

玻璃面板没有默认样式,因此默认情况下它是透明的。如果您希望背景变灰,则需要在玻璃面板上添加一些CSS样式。

此外,setGlassEnabled仅启用 next 时间的玻璃面板显示弹出窗口,在您的情况下,当您调用show时,弹出窗口已显示(因为先前对center的调用,所以这是一个无操作,实际上没有使用玻璃面板。在致电center之后将您的来电移至setGlassEnabled和/或在hide之前致电setGlassEnabled

答案 1 :(得分:2)

将以下代码放在对话框构造函数的顶部似乎可以解决我的问题。

setGlassEnabled(true);

Style glassStyle = getGlassElement().getStyle();
glassStyle.setProperty("width", "100%");
glassStyle.setProperty("height", "100%");
glassStyle.setProperty("backgroundColor", "#000");
glassStyle.setProperty("opacity", "0.45");
glassStyle.setProperty("mozOpacity", "0.45");
glassStyle.setProperty("filter", " alpha(opacity=45)");

答案 2 :(得分:0)

setGlassEnabled()的javadoc有点误导,称“背景被半透明窗格阻挡”。事实上它所做的就是应用一个全屏div,其默认样式名称为'gwt-PopupPanelGlass'(至少从GWT 2.4开始)。例如,如果您的项目<inherits>是一个主题,例如com.google.gwt.user.theme.clean.Clean,那么clean.css会提供您期望的半透明窗格:

.gwt-PopupPanelGlass {
    background-color: #000;
    opacity: 0.3;
    filter: alpha(opacity=30);
} 

否则,如前所述,您必须自己动手。