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