自动调整包含自定义ExtJS 4.2表单字段的容器面板的大小?

自动调整包含自定义ExtJS 4.2表单字段的容器面板的大小?,extjs,extjs4.2,extjs-form,Extjs,Extjs4.2,Extjs Form,我有一个基于Ext.form.field.Base的自定义字段组件。我从中得到了一个好主意。但是这个解决方案困扰我的是,它有一个固定的高度。我想要的是,当我向网格中添加条目时,容器的高度会增加 我之前曾尝试创建这样一个字段,但它基于一个包含网格和按钮的面板。将此面板放入vbox布局并将行添加到网格中,可以完美地调整容器表单面板的大小。我错过了什么来实现容器的大小调整 这是一把小提琴,你应该很容易明白我的意思: 我终于让它工作了 看到这把小提琴了吗 表单的此配置工作正常: layout: {

我有一个基于
Ext.form.field.Base
的自定义字段组件。我从中得到了一个好主意。但是这个解决方案困扰我的是,它有一个固定的高度。我想要的是,当我向网格中添加条目时,容器的高度会增加

我之前曾尝试创建这样一个字段,但它基于一个包含网格和按钮的面板。将此面板放入
vbox
布局并将行添加到网格中,可以完美地调整容器表单面板的大小。我错过了什么来实现容器的大小调整

这是一把小提琴,你应该很容易明白我的意思:
我终于让它工作了

看到这把小提琴了吗

表单的此配置工作正常:

layout: {
    type: 'vbox',
    align: 'stretch'
},
items: [{
    xtype: 'container',
    layout: 'anchor',
    items: [{
        //custom fields that change their height
}]
在自定义字段中,每次您希望更改高度时,都必须使用
this.updateLayout()
。此外,我还必须实现
onResize
方法:

onResize: function(w, h) {
    this.callParent(arguments);
    this.grid.setWidth(w - this.getLabelWidth());
}
重要的是,不要设置网格的高度;-)


感谢@Peter花时间研究这件事

我认为问题可能在于,您期望的是调整大小的行为,而实际上,如果添加autoscroll,您将在固定窗口中获得一个滚动窗口。我花了一些时间思考这个问题,我不知道如何做你想要的。也许是视口?谢谢Peter的输入!在设置值后使用
updateLayout()
,我更进一步了。网格溢出时仍然存在一些布局问题。您可能还想在extjs论坛上发表文章。因为它在这里已经有几天没有回应了,我认为这样做是合理的。贴一个链接到你的问题,我会跟随它,如果没有答案,试着引起一些注意。