GWT - DialogBox玻璃和GoogleChrome - 玻璃不重绘

时间:2012-04-06 18:53:58

标签: java gwt google-chrome

我刚安装了最新的谷歌浏览器,只是尝试使用DialogBox测试GWT 2.3代码;出于某种原因,像setGlassEnabled(true);这样的选项以一种奇怪的方式工作:(

如果chrome的滚动窗格(y位置为0),则玻璃涂层正确

但如果 chrome的滚动窗格(y位置> 0)然后玻璃保持在0位置,因此铬的底部没有用玻璃盖住:(

我要将构造函数的第一个玻璃选项显示为

...
public MyDIalog() {

        this.setGlassEnabled(true);
        this.setAnimationEnabled(true);
        this.setModal(true);
        this.setPreviewingAllNativeEvents(true);
...

我不太确定是什么造成了这个错误,因为代码在IE和FF中运行良好:S

所以我猜在镀铬中,玻璃位置总是静止的,或者它的位置总是

  

x,y {0,0} w,h {firstInitedWidth,firstInitedHeight}

所以我的问题是有没有可以走走铬?

由于

3 个答案:

答案 0 :(得分:6)

解决:

创建自己的类,扩展PopupPanel并添加:

    @Override
    public void setGlassEnabled(boolean enabled) {
        super.setGlassEnabled(enabled);
        Element glass = getGlassElement();
        if (glass != null) {
            glass.getStyle().setPosition(Position.FIXED);
        }
    }

这只是将玻璃面板的位置设置为固定而不是绝对。这使得面板不随滚动移动。

答案 1 :(得分:0)

奇怪....但我想最坏的情况是你可以在css中给玻璃样式一些疯狂的高度/宽度。

.gwt-PopupPanelGlass{
    height:15000 px;
    width:15000 px;
}

答案 2 :(得分:0)

作为替代方案,无需设置宽度和高度,您始终可以将CSS属性设置为fixed(使用!important指令)

.gwt-PopupPanelGlass {
    position:fixed!important;
}