Как настроить изменение размера события мыши как автоматически подгоняемое
Вам необходимо использовать flex
config для ExtJS childэлементы для автоматической настройки.
Flex
Flex может применяться к дочерним элементам макета коробки ( Ext.layout.container.VBox или Ext.layout.container.HBox ).Каждый дочерний элемент со свойством flex заполнит пространство (по горизонтали в hbox , по вертикали в vbox ) в соответствии с относительным значением flex этого элемента по сравнению с суммой всехэлементы с указанным значением flex.
Любые дочерние элементы, которые имеют flex из 0 или undefined , будутне сгибаться (исходный размер не изменится).
В этом FIDDLE я создал демо с использованием изменяемого размера panel
,Надеюсь, что это поможет / поможет вам в достижении ваших требований.
КОД SNIPPET
Ext.application({
name: 'Fiddle',
launch: function () {
Ext.define('CommonGrid', {
extend: 'Ext.grid.Panel',
xtype: 'commongrid',
title: 'Data',
store: {
fields: ['name', 'email', 'phone'],
data: [{
name: 'Lisa',
email: 'lisa@simpsons.com',
phone: '555-111-1224'
}, {
name: 'Bart',
email: 'bart@simpsons.com',
phone: '555-222-1234'
}, {
name: 'Homer',
email: 'homer@simpsons.com',
phone: '555-222-1244'
}, {
name: 'Marge',
email: 'marge@simpsons.com',
phone: '555-222-1254'
}]
},
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'phone'
}]
});
Ext.create({
xtype: 'panel',
layout: 'vbox',
title: 'Demo',
bodyPadding: 10,
width: 500,
border: true,
resizable: true,
draggable: true,
tools: [{
type: 'refresh'
}, {
type: 'settings'
}],
renderTo: Ext.getBody(),
defaults: {
layout: 'hbox',
xtype: 'container',
width: '100%',
flex: 1,
defaults: {
xtype: 'button',
margin: '0 10',
flex: 1
}
},
items: [{
maxHeight:30,
items: [{
text: 'Button 1'
}, {
text: 'Button 2'
}, {
text: 'Button 3'
}]
},{
xtype:'tbspacer',
height:10,
maxHeight:10
}, {
items: [{
xtype: 'commongrid'
}, {
xtype: 'commongrid'
}]
}]
})
}
});