在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(宽度,高度)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top