首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT to SplitLayoutPanel drag

GWT to SplitLayoutPanel drag
EN

Stack Overflow用户
提问于 2012-03-16 18:38:09
回答 2查看 1.9K关注 0票数 1

在GWT中,有没有可能有一个处理程序来检测到SplitLayoutPanel的旋钮被拖动或按下?

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-16 19:05:15

我认为,可以通过重写DockLayoutPanel的onResize()继承方法来实现:

代码语言:javascript
复制
  SplitLayoutPanel splitLayoutPanel = new SplitLayoutPanel(){
            @Override
            public void onResize() {
                super.onResize();
                Window.alert("resized");
            }
        };  
票数 1
EN

Stack Overflow用户

发布于 2013-06-03 22:08:24

您可以通过添加中间ResizeLayoutPanels来完成此操作。

MyComposite.ui.xml :

代码语言:javascript
复制
<!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 :

代码语言:javascript
复制
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事件,因为它在拖动拆分器时会触发很多次。

我使用它将菜单面板的宽度存储在用户的首选项中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9735735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档