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

问题描述 投票:0回答:1

我有这个要求,我在North的SplitLayoutPanel中只有一个大的小部件集。

一旦使用拆分器调整面板的大小,我就会收到一个包含值的通知 - 扩展或折叠了多少。

这可能吗?

gwt resize splitter
1个回答
2
投票

SplitLayoutPanel实现ProvidesResize接口。这意味着

(...)实现小部件将在其子级可能已更改时调用RequiresResize.onResize()

因此,如果仅在North上的SplitLayoutPanel内部设置的大型窗口小部件实现RequiresResize,则会通知它的大小可能已更改。

你需要的最后一件事是获得新的尺寸。你可以使用getWidgetSize方法。

请注意,您获得的尺寸只是一个尺寸。对于北窗格,它是高度。


简单示例代码:

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());
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.