我想将五个textareafield
个组件放入container
,以便填充整个container
:
33% 33% 33%
+---------+---------+---------+
| | | | 50%
| | | |
| +---------+---------+
| | | | 50%
| | | |
+---------+---------+---------+
是否有比vbox
容器内的两个hbox
容器更好的布局?
这看起来更像是表格布局。但是,如何告诉textareas在table
布局中填满整个屏幕,以及表格列应该占据33%的宽度?
答案 0 :(得分:2)
我会使用一个主box
容器,里面有三个面板,一个fit
和两个vbox
,始终设置flex:1
。
看,您可以使用表格布局但如果您知道表格中每个容器的确切尺寸,如果您想使用比例hbox
,fit
和vbox
是最好的方式(这就是他们在那里的原因)。
Ext.define('Fiddle.view.MyPanel', {
extend: 'Ext.panel.Panel',
requires: [
'Ext.panel.Panel',
'Ext.form.field.TextArea'
],
height: 400,
width: 600,
title: 'My textarea table',
layout: {
type: 'hbox',
align: 'stretch'
},
items: [
{
xtype: 'panel',
flex: 1,
layout: 'fit',
items: [
{
xtype: 'textareafield',
fieldLabel: 'Label'
}
]
},
{
xtype: 'panel',
flex: 1,
layout: {
type: 'vbox',
align: 'stretch'
},
items: [
{
xtype: 'textareafield',
flex: 1,
fieldLabel: 'Label'
},
{
xtype: 'textareafield',
flex: 1,
fieldLabel: 'Label'
}
]
},
{
xtype: 'panel',
flex: 1,
layout: {
type: 'vbox',
align: 'stretch'
},
items: [
{
xtype: 'textareafield',
flex: 1,
fieldLabel: 'Label'
},
{
xtype: 'textareafield',
flex: 1,
fieldLabel: 'Label'
}
]
}
]
});
Ext.create('Fiddle.view.MyPanel',{
renderTo: Ext.getBody()
});