我想在布局面板(DockLayoutPanel)中使用CaptionPanel。
问题是没有CaptionLayoutPanel(如SimpleLayoutPanel)实现,因此如果我想使用 在布局面板中的这个面板中,所有子节点都将丢失调整大小事件,因为“调整大小链”是通过CaptionPanel打破的。
有解决方法吗?
答案 0 :(得分:2)
最简单的解决方案是不使用CaptionPanel。
如果您希望孩子们响应调整大小事件,请在LayoutPanel中添加一个图层,该图层将包含一个标题(Label),另一个图层将包含您要响应调整大小的子窗口小部件。您可以按照自己喜欢的方式设置这些小部件的样式(例如,标签看起来像标签或带有背景和圆角的面板等)。
另一种解决方案是将您的CaptionPanel设置为Frozen Peas建议的Roddy,然后在窗口中添加ResizeHandler。触发后,您可以将子窗口小部件的大小设置为
myChildWidget.setSize(myCaptionPanel.getOffsetWidth() + "px", myCaptionPanel.getOffsetHeight() + "px");
答案 1 :(得分:2)
扩展CaptionPanel
并实施ProvidesResize
和RequiresResize
接口
CustomCaptionPanel extends CaptionPanel implements RequiresResize,ProvidesResize {
public void onResize() {
if (getContentWidget() instanceof RequiresResize) {
((RequiresResize) getContentWidget()).onResize();
}
}