我正在创建一个与同一文本相同的弹出式面板,我想禁用背景并使其变灰。我读到了关于setGlassEnabled的内容,但它不起作用,有人可以帮忙吗? PS。弹出窗口正确可视化。
PopupPanel popup = new PopupPanel(infoType);
popup.center();
popup.setGlassEnabled(true);
popup.show();
答案 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);
}
否则,如前所述,您必须自己动手。