ExtJS 4 - 使用resizeHandles调整大小后,内部组件未在适合布局中调整大小

时间:2016-07-05 09:15:33

标签: javascript html extjs4.2

我有几个面板,我可以拖动它们并将它们放到其他地方。其中一些人有resizeHandles手动改变它的高度。如果我拖动一个面板并放置宽度小于面板的位置,并且其子项(工具栏,标题等)正在更改宽度。但是当我改变高度然后拖动如上所示的面板时,只有主面板宽度在变化,孩子们保持相同的尺寸。小组看起来像这样:

{
    xtype: 'panel',
    layout: 'fit',
    resizable: true,
    resizeHandles: 's',
    draggable: {
            moveOnDrag: false
    },
    items: [
        toolbar or panel or container (depends on the panel)
    ]
}

我在想,调整后它会改变布局中的某些内容,但我无法找到任何东西。我试图调试它但是找出错误几乎是不可能的。尝试了doLayout(),doComponentLayout(),但似乎没有任何效果。现在我没有想法。

1 个答案:

答案 0 :(得分:0)

好的,所以我在很长一段时间内调试了这个问题,我发现,在使用resizeHandles调整面板大小后,他们会获得一个宽度属性,并且在拖动之后它会以某种方式影响面板所以它不会调整大小。 解决方案是在调整大小后立即删除width属性,现在它可以正常工作。

修改

代码的侦听器部分是解决方案。也许不是最好的方式,但它确实有效。

{
    xtype: 'panel',
    layout: 'fit',
    resizable: true,
    resizeHandles: 's',
    draggable: {
            moveOnDrag: false
    },
    items: [
        toolbar or panel or container (depends on the panel)
    ],
    listeners: {
            resize: function(component, ...) {
                    delete component.width;
            }
    }
}