处理borderlayout zk上的事件折叠栏

时间:2017-08-31 14:04:47

标签: java layout zk

我正在开发Java和ZK的ERP。

我有一个borderlayout,其中包含带有一些过滤器的面板。

我想让北方崩溃。

如果我点击箭头将其折叠或打开它,它可以正常工作,但是如果我在栏上按下它,它将无法正常打开,只能预览。

我可以禁用此功能吗?我可以处理栏上的点击事件吗?

爪哇:

North north = new North();
m_mainLayout.appendChild(north);
north.setHflex("1");
north.setCollapsible(true);

1 个答案:

答案 0 :(得分:1)

有几件事可以帮到你。其中一些可能是新的,因为它们没有很好的文档记录,并且在我的Eclipse自动完成中没有提供。

首先:幻灯片 - 布局区域有一个setSlide(boolean),点击栏时可以收听onSlide event,但不能点击按钮。

其次,有一个 library property 来关闭崩溃动画:

<library-property>
    <name>org.zkoss.zul.borderlayout.animation.disabed</name>
    <value>true</value>
</library-property>

您可以在zk.xml中指定它,以查看您的案例是否在有或没有动画的情况下效果更好(在我的迷你示例中,如果没有动画,效果会更好)。

第三,最重要的是,添加这个样式,这将使整个栏像按钮一样:

<style>
    .z-north-collapsed>.z-borderlayout-icon {
        top: 0; bottom: 0; right: 0; left: 0;
        width: 100%; height: 100%;
    }
    .z-north-collapsed>.z-borderlayout-icon::before {
        vertical-align: middle;
    }
</style>

这仅适用于north,您可能希望其他地区更加通用。我发现将按钮放大并将所有动画/事件处理/组件替换为zk看起来效果最佳。

示例:

<style>
    .z-north-collapsed>.z-borderlayout-icon {
        top: 0; bottom: 0; right: 0; left: 0;
        width: 100%; height: 100%;
    }
    .z-north-collapsed>.z-borderlayout-icon::before {
        vertical-align: middle;
    }
</style>

<borderlayout>
    <north splittable="true" collapsible="true" >
        <button label="hello" />
    </north>
    <center>
        <textbox value="world" />
    </center>
</borderlayout>