2012-04-06 64 views
1

我刚刚安装了最新的google chrome,并试图用DialogBox测试GWT 2.3代码;出于某种原因,喜欢在陌生的路上:(setGlassEnabled(true);作品选项GWT - DialogBox玻璃和GoogleChrome - 玻璃不重画

如果Chrome的滚动窗格(y位置为0)玻璃被涂上正确

但如果 Chrome的滚动窗格(y位置是> 0),则玻璃在0位置保持因此Chrome的休息底部没有覆盖玻璃:(

我展示我的构造函数第一玻璃选项

... 
public MyDIalog() { 

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

我不是很确定是什么让这个bug或东西,因为代码在IE和FF正常工作:S

所以我想在镀铬玻璃位置始终是静态或东西,它的位置始终是

的x,y {0,0} W,H {firstInitedWidth,firstInitedHeight}

所以我的问题是有没有踅铬?

感谢

+0

这仍然是使用GWT 2.5.0和的情况下Chrome 24. – qwertzguy 2013-01-29 15:20:27

回答

6

解决:

使自己的类,它扩展PopupPanel和补充一点:

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

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

+0

这很有趣......我还没有尝试过,但有没有办法每次都不要重写该方法? – user592704 2013-01-29 17:22:09

+0

@ user592704是的,只需制作自己的班级而不是匿名班级。但确切地说,它实际上看起来像Chrome中的一个bug,因为它在Firefox中工作正常。 GWT似乎将玻璃窗格的高度设置为根面板的高度,但如果Chrome浏览器没有完整显示(具有滚动条),Chrome无法正确计算它的高度。 – qwertzguy 2013-01-30 09:18:48

+0

好的谢谢你:) – user592704 2013-01-30 16:06:41

0

奇....但我想你可以给玻璃风格的CSS一些疯狂的高度/宽度最坏的情况。

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

你的意思是我必须手动更正它与CSS? – user592704 2012-04-06 19:50:17

+0

打我....我从来没有见过这个。我只是想知道默认玻璃是否停留在页面的顶部,是否真的很大,因此它覆盖了它需要的一切。 – 2012-04-06 19:53:26

+0

是的,它停留在顶部; :) 15000px是一个有趣的想法,但为什么会发生静态效应?也许铬需要GWT的其他东西?我虽然GWT必须与铬合作完美吗? – user592704 2012-04-06 19:56:11

0

作为替代方案,而不必设置宽度和高度,你总是可以在CSS属性设置为固定的(使用!重要指示)

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