GWT可调整大小的复合材料

GWT可调整大小的复合材料,gwt,resize,composite,Gwt,Resize,Composite,我正在通过记录小部件的宽度和高度,尝试使用ResizeableComposite进行一个简单的实验,但没有得到任何响应 可调整大小的FlowPanel public class ResizableFlowPanel extends FlowPanel implements RequiresResize, ProvidesResize { public ResizableFlowPanel() { super(); } @Override public

我正在通过记录小部件的宽度和高度,尝试使用
ResizeableComposite
进行一个简单的实验,但没有得到任何响应

可调整大小的FlowPanel

public class ResizableFlowPanel extends FlowPanel implements RequiresResize, ProvidesResize {

    public ResizableFlowPanel() {
    super();
    }

    @Override
    public void onResize() {
    GWT.log(this.getOffsetHeight() +","+this.getOffsetWidth());
    }

}
<ui:UiBinder ...>
    <e:ResizableFlowPanel styleName="{bundle.appBodyStyle.app_body}">

    </e:ResizableFlowPanel>
</ui:UiBinder> 
AppBody.java

public class AppBody extends ResizeComposite implements RequiresResize,
    ProvidesResize {
    private static AppBodyUiBinder uiBinder = GWT.create(AppBodyUiBinder.class);

    public AppBody() {
    initWidget(uiBinder.createAndBindUi(this));
    }

    @Override
    public void onResize() {
    GWT.log(this.getOffsetHeight() + "," + this.getOffsetWidth());
    super.onResize();
    }

    interface AppBodyUiBinder extends UiBinder<Widget, AppBody> {
    }

}
公共类AppBody扩展ResizeComposite实现RequiresResize,
提供调整大小{
私有静态AppBodyUiBinder uiBinder=GWT.create(AppBodyUiBinder.class);
公共机构(){
initWidget(uiBinder.createAndBindUi(this));
}
@凌驾
公共void onResize(){
log(this.getOffsetHeight()+”,“+this.getOffsetWidth());
super.onResize();
}
接口AppBodyUiBinder扩展了UiBinder{
}
}
AppBody.ui.xml

public class ResizableFlowPanel extends FlowPanel implements RequiresResize, ProvidesResize {

    public ResizableFlowPanel() {
    super();
    }

    @Override
    public void onResize() {
    GWT.log(this.getOffsetHeight() +","+this.getOffsetWidth());
    }

}
<ui:UiBinder ...>
    <e:ResizableFlowPanel styleName="{bundle.appBodyStyle.app_body}">

    </e:ResizableFlowPanel>
</ui:UiBinder> 


调整浏览器大小时,不会收到任何日志消息。

FlowPanel会根据其父级调整大小。我认为您不需要编写“ResizableFlowPanel extends FlowPanel implements RequiresResize”
RequiresResize
只会在您将小部件添加到实现
ProvideResize
的父级时产生影响-那么您将AppBody添加到什么?为什么AppBody没有实现
providesize
并在实现
请求resize
的任何子级上调用
onResize()
(又称
resizebleflowPanel
)?Colin,我正在将其添加到HtmlPanel;所以这可能就是它不起作用的原因。有没有一种方法可以跟踪面板的大小,而不必从RootPanel开始实现这两个接口?