GWT的SplitLayoutPanel:获取调整大小通知

时间:2018-09-17 14:19:31

标签: gwt resize splitter

我有这个要求,在北部的SplitLayoutPanel中只设置了一个大的小部件。

使用分隔符调整面板大小后,我应该收到一个通知,其中包含以下值-已扩展或折叠了多少。

这可能吗?

1 个答案:

答案 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());
    }
}