在GWT中是否可以使用一个处理程序来检测旋转pf SplitLayoutPanel是否被拖动或按下?
感谢您的帮助。
答案 0 :(得分:2)
您可以通过添加中间ResizeLayoutPanels来完成此操作。
<强> MyComposite.ui.xml :
强>
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:my="urn:import:my.custom.package.client">
<g:SplitLayoutPanel ui:field="splitLayoutPanel">
<g:west size="250">
<g:ResizeLayoutPanel ui:field="leftMenuOuterPanel">
<my:MenuWidget ui:field="menuWidget" />
</g:ResizeLayoutPanel>
</g:west>
<g:center>
<g:ResizeLayoutPanel ui:field="centerOuterPanel">
<my:AwesomeWidget ui:field="centerWidget" />
</g:ResizeLayoutPanel>
</g:center>
</g:SplitLayoutPanel>
</ui:UiBinder>
<强> MyComposite.java :
强>
class MyComposite extends Composite{
// fuss with ui binder interfaces
// other fuss to declare widgets as @UiField
public MyComposite(){
initWidget(uiBinder.createAndBindUi(this));
leftMenuOuterPanel.addResizeHandler(new ResizeHandler(){
public void onResize(ResizeEvent event){
// Here do what you want
}
});
}
}
我建议使用延迟命令来执行resize事件所需的操作,因为在拖动拆分器时它会激活很多次。
我用它来存储用户首选项中菜单面板的宽度。
答案 1 :(得分:1)
我认为,您可以通过覆盖DockLayoutPanel的onResize()继承方法来实现:
SplitLayoutPanel splitLayoutPanel = new SplitLayoutPanel(){
@Override
public void onResize() {
super.onResize();
Window.alert("resized");
}
};