크기 조정에 반응하는 위젯을 작성하는 방법은 무엇입니까?onResize가 호출되지 않았습니다.
다음은 작동하지 않습니다. onResize()는 처음에 한 번만 호출됩니다. DIV의 크기가 조정 되더라도 브라우저 창 크기가 변경되면이 메서드가 호출되지 않습니다. ResizComposite에 따라
public class MyWidget extends SimpleLayoutPanel {
private Label label;
public MyWidget() {
label = new Label("A");
add(label);
}
@Override
public void onResize() {
super.onResize();
int width = label.getElement().getClientWidth();
int height = label.getElement().getClientHeight();
int fontsize = (width>height?height:width);
if(fontsize > 0) {
DOM.setStyleAttribute(label.getElement(), "font-size", Integer.toString(fontsize)+"px");
}
}
}
및 주요 모듈
public void onModuleLoad() {
MyWidget myWidget = new MyWidget();
DOM.setStyleAttribute(myWidget.getElement(), "position", "fixed");
DOM.setStyleAttribute(myWidget.getElement(), "top", "0px");
DOM.setStyleAttribute(myWidget.getElement(), "left", "0px");
DOM.setStyleAttribute(myWidget.getElement(), "bottom", "0px");
DOM.setStyleAttribute(myWidget.getElement(), "right", "0px");
RootPanel rootPanel = RootPanel.get();
rootPanel.add(myWidget);
}
UPDATE 1
버전은 작동하지 않습니다. 이 경우 onResize는 전혀 호출되지 않습니다.
public class MyWidget extends ResizeComposite {
private Label label;
public MyWidget() {
label = new Label("A");
DOM.setStyleAttribute(label.getElement(), "position", "fixed");
DOM.setStyleAttribute(label.getElement(), "top", "0px");
DOM.setStyleAttribute(label.getElement(), "left", "0px");
DOM.setStyleAttribute(label.getElement(), "bottom", "0px");
DOM.setStyleAttribute(label.getElement(), "right", "0px");
SimpleLayoutPanel simpleLayoutPanel = new SimpleLayoutPanel();
simpleLayoutPanel.add(label);
initWidget(simpleLayoutPanel);
}
@Override
public void onResize() {
int width = label.getElement().getClientWidth();
int height = label.getElement().getClientHeight();
int fontsize = (width>height?height:width);
if(fontsize > 0) {
DOM.setStyleAttribute(label.getElement(), "font-size", Integer.toString(fontsize)+"px");
}
super.onResize();
}
}
'RootPanel'은'ProvidesResize'를 구현합니까? –
보이지 않습니다. 하지만 루트 패널에 RootPanel 이외의 것을 사용할 수 있습니까? – Dims