2009年7月30日星期四

Gwt ext GridPanel bug with: 100% width / setAutoWidth( true ) II

在第一篇关于这个问题的文章中,使用了比较通用的方法。但实践证明,在某些情况下,仍然不够灵活好用。而使用resize listener的方式,可以更好的定制grid的大小。方法如下
在上级容器中,定制resizelistener,如,grid的上级容器为Panel,则定义PanelListener:
panel.addListener(new PanelListenerAdapter(){
public void onBodyResize(Panel panel, String width, String height) {
super.onBodyResize(panel, width, height);
if(grid != null)
{
grid.resize(width, height);
}
}
});
而在grid中,定义pulic方法resize(width, height)为:
public void resize(String width, String height)
{
int x = Integer.parseInt(width)-10;
int y = Integer.parseInt(height)-60;
grid.setWidth((x>0)?x:800);
grid.setHeight((y>0)?y:500);
}
这样既可灵活的定制grid与上级容器大小间的关系,又可在上级容器大小发生变化时,改变grid的大小。

没有评论:

发表评论