天天看点

ExtJS布局Layout

所谓布局就是指容器组件中子元素的分布、排列组合方式。Ext 的所有容器组件都支持而局

操作,每一个容器都会有一个对应的布局,布局负责管理容器组件中子元素的排列、组合及

渲染方式等。

ExtJS2.0 主要包含十种布局,常用的布局有border、column、fit、form、card、tabel

等布局,下面我们分别对这几种布局作简单的介绍。

ExtJS 的布局基类为Ext.layout.ContainerLayout,其它布局都是继承该类。ExtJS 的

容器组件包含一个layout 及layoutConfig 配置属性,这两个属性用来指定容器使用的布局及

布局的详细配置信息,如果没有指定容器组件的layout 则默认会使用ContainerLayout 作为

布局,该布局只是简单的把元素放到容器中,有的布局需要layoutConfig 配置,有的则不需

要layoutConfig 配置。看代码:

Ext.onReady(function(){

new Ext.Panel({

renderTo:"hello",

width:400,

height:200,

layout:"column",

items:[{columnWidth:.5,

title:"面板1"},

{columnWidth:.5,

title:"面板2"}]

});

});

上面的代码我们创建了一个面板Panel,Panle 是一个容器组件,我们使用layout 指定该

面板使用Column 布局。该面板的子元素是两个面板,这两个面板都包含了一个与列布局相

关的配置参数属性columnWidth,他们的值都是0.5,也就是每一个面板占一半的宽度。

Border 布局由类Ext.layout.BorderLayout定义,布局名称为border。该布局把容器分成东南西北中五个区域,

分别由east,south, west,north, cente来表示,在往容器中添加子元素的时候,我们只需要指定这些子元素

所在的位置,Border布局会自动把子元素放到布局指定的位置。看下面的代码:

Ext.onReady(function(){

new Ext.Viewport({

layout:"border",

items:[{region:"north",

height:50,

title:"顶部面板"},

{region:"south",

height:50,

title:"底部面板"},

{region:"center",

title:"中央面板"},

{region:"west",

width:100,

title:"左边面板"},

{region:"east",

width:100,

title:"右边面板"}

]

});

});

Column列布局----------------------Column 列布局由Ext.layout.ColumnLayout 类定义,名称为column

Fit布局---------------Fit 布局由类Ext.layout.FitLayout 定义,名称为fit

Form布局----------Form 布局由类Ext.layout.FormLayout 定义,名称为form

Accordion布局--------Accordion 布局由类Ext.layout.Accordion 定义,名称为accordion,表示可折叠的布局,也就

是说使用该布局的容器组件中的子元素是可折叠的形式。

Table布局-----------Table 布局由类Ext.layout.TableLayout 定义,名称为table