[英]Resizing child items of vbox
我们最近将ext-js从4.1更新为4.2。 在4.1上,以下代码可以调整此处使用的vbox子项的大小。 我们可以在这些孩子之间拖动边框,并且两个项目都会调整大小。
在4.2中,无法调整这些子项的大小。 指向正确的空间时,甚至光标都不会改变形状。
Ext.define('Example.view.NavPanel', {
extend: 'Ext.panel.Panel',
alias: 'widget.exampleNavPanel',
requires: ['Example.view.example.List', 'Example.view.example2.List', 'Example.view.paneledycji.EditTabPanel'],
layout: {
type: 'vbox',
align: 'stretch',
pack: 'start'
},
items: [
{
xtype: 'panel',
title: 'Navpanel',
collapsible: true,
flex: 1,
layout: {
type: 'hbox',
pack: 'start',
align: 'stretch'
},
items: [
{xtype: 'exampleList', flex: 1},
{xtype: 'example2List', flex: 3}
]
},
{
xtype: 'editTabPanel',
flex: 1
}
]
});
我尝试添加
resizable:true
给第一个孩子。 指向边界时,它使光标改变了形状,我可以将其拖动到周围...但是子代不会调整大小。 当我从第一个孩子中移除flex时,我终于可以调整项目的大小,但是它几乎没有问题:
我希望能够为上层儿童设置最小和最大高度,最好以百分比为单位,并禁用宽度调整大小。 理想情况下,我还希望能够为两个孩子都设置默认尺寸。 我无法使用docs.sencha.com上列出的任何配置组合来解决问题。 我必须怎么做才能达到这种效果?
您可以使用boxready
事件在初始布局后删除flex
属性。 这样,您将从初始的自动调整大小中受益,但不会阻止组件在以后调整大小。
对于第二个问题,请使用resizeHandles
选项指定可以抓住其大小进行调整的面。
Ext.define('Example.view.NavPanel', {
extend: 'Ext.panel.Panel',
alias: 'widget.exampleNavPanel',
layout: {
type: 'vbox',
align: 'stretch'
},
items: [{
xtype: 'panel',
title: 'Navpanel',
flex: 1,
resizable: true,
resizeHandles: 's',
listeners: {
single: true,
boxready: function() {
delete this.flex;
}
}
},{
xtype: 'component',
html: 'editTabPanel',
flex: 1
}]
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.