Zk borderlayout调整大小事件

问题描述 投票:0回答:1

我正在使用Zk在Java中创建ERP。我从Java创建整个网站,而不是使用.zul文件。我需要的是在用户拖动BorderLayout时侦听onResize事件。我需要将新的宽度值保存在数据库中。

我已经尝试设置setSlide(true)并监听ON_SLIDE事件,但这似乎不起作用。其他事件也没有。我的BorderLayout包括一个固定的北方,一个有杠的西方和一个中心。我只需要听西方。

DesktopLayout.getWest().addEventListener(Events.ON_SLIDE, this)


onEvent(Event event) {
    if(Events.ON_SLIDE.equals(event.getName())){
        System.out.println("The slider has been moved");
    }
}
java events zk
1个回答
0
投票

ON_SLIDE可能不是适合您的用例的事件。在使用borderlayout区域的内置幻灯片功能时触发,但在单击并拖动调整大小时不触发。

对于单击并拖动调整大小,最简单的选项将在ON_SIZE上,并在目标区域上具有hflex(或用于垂直大小调整的vflex)属性。这里的窍门是,当您使用拖动栏调整大小时,实际上是在调整“ BorderLayout子容器”的大小,因此您需要告诉区域(西部,中央等)也要调整其直接父区域的大小,因此也要使用hflex。 >

请参见此处获取代码示例。它使用zul文件作为启动器,但是该页面是通过Composer用Java构建的。

拖放幻灯片的栏,然后单击栏的中心按钮以折叠West面板。折叠时,单击除箭头以外的任何位置以滑动组件以打开并触发onSlide。

https://zkfiddle.org/sample/31dt63d/2-Borderlayout-region-sizing

© www.soinside.com 2019 - 2024. All rights reserved.