1

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

问题是没有 CaptionLayoutPanel(如 SimpleLayoutPanel)实现,因此如果我想在布局面板中使用此面板,所有子项都会丢失调整大小事件,因为“调整大小链”已通过 CaptionPanel 中断。

有什么解决方法吗?

4

2 回答 2

2

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

如果您希望孩子响应调整大小事件,请在 LayoutPanel 中添加一个包含标题(标签)的层,以及另一个包含您想要响应调整大小的子小部件的层。您可以以任何您喜欢的方式设置这些小部件的样式(例如,标签可以看起来像带有一些背景和圆角的选项卡或面板等)

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

myChildWidget.setSize(myCaptionPanel.getOffsetWidth() + "px", myCaptionPanel.getOffsetHeight() + "px");
于 2012-09-25T19:19:30.147 回答
2

扩展CaptionPanel和实现ProvidesResizeRequiresResize接口

CustomCaptionPanel extends CaptionPanel implements RequiresResize,ProvidesResize {

    public void onResize() {
        if (getContentWidget() instanceof RequiresResize) { 
            ((RequiresResize) getContentWidget()).onResize(); 
    }
}
于 2012-09-26T14:18:08.880 回答