gpt4 book ai didi

java - onResize 未调用

转载 作者:行者123 更新时间:2023-12-01 15:38:26 26 4
gpt4 key购买 nike

如何编写一个对调整大小使用react的小部件?

以下内容无效。 onResize() 在开始时仅调用一次。尽管 DIV 的大小已调整,但后者更改浏览器窗口大小不会导致调用此方法。

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


}

更新1

基于 ResizComposite 的版本也不起作用。在这种情况下,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();
}

}

最佳答案

您必须添加到 ProvidesResize小部件( RootLayoutPanelResizeLayoutPanel )或 HeaderPanel对于RequiresResize受到尊重。请参阅http://code.google.com/webtoolkit/doc/latest/DevGuideUiPanels.html#Resize

关于java - onResize 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8487881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com