题
在GXT中,我有一个控件,其中一个重要的面板添加到底部组件中,基本上是这样:
public class SamplePanel extends ContentPanel {
ContentPanel panel = new ContentPanel();
public SamplePanel() {
setBottomComponent(panel);
}
public void setVisible(boolean isVisible) {
panel.setVisible(isVisible);
}
面板被设置为“底部组件”,因为它需要始终保持在小部件的底部,并且始终可查看。
问题是,虽然面板的可见性正确切换,但“底部组件”区域并不能调整大小以使其变小并适合底部区域的新尺寸。
但是,我注意到当我用鼠标手动更改小部件的大小时,底部的区域确实很大。
是否有任何方法可以在编程中强制重新绘制/重新绘制/重新涂层...任何可以更改底部的组件以反映其内容的新尺寸?
我尝试了所有这些,它们不起作用:
public void setVisibility(boolean isVisible) {
panel.setVisible(isVisible);
doLayout(true);
recalculate();
repaint();
}
谢谢
解决方案
在最后的GXT中,您可以做。
this.layout(true);
否则,您可以解散事件。
其他提示
我不知道GXT,但是在GWT中,我会使用其中一个 force()
或者 forceLayout()
我的面板上的方法。也许也有类似的API这样做!
Hth。
您是否尝试过使用 setLayoutOnChange()
方法的方法 ConentPanel
?
我建议看一下:http://davidmaddison.blogspot.com/2008/12/gwt-rendering-process.html
您可以尝试做的就是将其添加到面板中,然后尝试调用面板.layout()
这个帖子 声称一旦面板渲染,顶部和底部组件就不会参与布局,并建议手动解决方法(使用rowlayout)或手动设置面板的大小。
考虑从父母那里找到尺寸并调用on Resize(宽度,高度)
不隶属于 StackOverflow