CaptionPanel - > CaptionLayoutPanel

时间:2012-09-25 18:13:48

标签: gwt

我想在布局面板(DockLayoutPanel)中使用CaptionPanel。

问题是没有CaptionLayoutPanel(如SimpleLayoutPanel)实现,因此如果我想使用 在布局面板中的这个面板中,所有子节点都将丢失调整大小事件,因为“调整大小链”是通过CaptionPanel打破的。

有解决方法吗?

2 个答案:

答案 0 :(得分:2)

最简单的解决方案是不使用CaptionPanel。

如果您希望孩子们响应调整大小事件,请在LayoutPanel中添加一个图层,该图层将包含一个标题(Label),另一个图层将包含您要响应调整大小的子窗口小部件。您可以按照自己喜欢的方式设置这些小部件的样式(例如,标签看起来像标签或带有背景和圆角的面板等)。

另一种解决方案是将您的CaptionPanel设置为Frozen Peas建议的Roddy,然后在窗口中添加ResizeHandler。触发后,您可以将子窗口小部件的大小设置为

myChildWidget.setSize(myCaptionPanel.getOffsetWidth() + "px", myCaptionPanel.getOffsetHeight() + "px");

答案 1 :(得分:2)

扩展CaptionPanel并实施ProvidesResizeRequiresResize接口

CustomCaptionPanel extends CaptionPanel implements RequiresResize,ProvidesResize {

    public void onResize() {
        if (getContentWidget() instanceof RequiresResize) { 
            ((RequiresResize) getContentWidget()).onResize(); 
    }
}