我有这个要求,在北部的SplitLayoutPanel中只设置了一个大的小部件。
使用分隔符调整面板大小后,我应该收到一个通知,其中包含以下值-已扩展或折叠了多少。
这可能吗?
答案 0 :(得分:2)
SplitLayoutPanel
实现ProvidesResize
接口。意思是,
(...)只要其大小发生变化,实施小部件都会在其子级上调用
RequiresResize.onResize()
。
因此,如果只有在北部SplitLayoutPanel内部设置的大窗口小部件实现了RequiresResize
,则会通知其大小可能已更改。
您需要做的最后一件事就是获得新的尺寸。您可以使用getWidgetSize
方法。
请注意,您将得到的 size 只是一维。对于 North 窗格,它是 height 。
简单的示例代码:
final SplitLayoutPanel splitLayoutPanel = new SplitLayoutPanel();
@Override
public void onModuleLoad() {
splitLayoutPanel.addNorth(new MyResizeWidget(), 100);
RootLayoutPanel.get().add(splitLayoutPanel);
}
public class MyResizeWidget extends Button implements RequiresResize {
public MyResizeWidget() {
super("Hello!");
}
@Override
public void onResize() {
this.setText("Hello! " + splitLayoutPanel.getWidgetSize(this).toString());
}
}