GWT SplitLayoutPanel: получить уведомление об изменении размера - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть это требование, когда у меня есть только один большой виджет, установленный внутри SplitLayoutPanel на севере.

Как только размер панели будет изменен с помощью сплиттера, я должен получить уведомление со значениями - Сколько было развернуто или свернуто.

Возможно ли это?

1 Ответ

0 голосов
/ 17 сентября 2018

SplitLayoutPanel реализует интерфейс ProvidesResize.Это означает, что

(...) реализующий виджет будет вызывать RequiresResize.onResize() для своих дочерних элементов всякий раз, когда их размер может измениться.

Так что, если только ваш большой виджет, установленный внутри 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());
    }
}
...