序言:javascript
笔者用的ExtJs版本:ext-3.2.0html
ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchorjava
另外,不常见的布局有:tab、vbox、hbox函数
本文全部实例代码已提供下载,下载连接:ExtJs经常使用布局--layout详解实例代码布局
简介:flex
最经常使用的边框布局——BorderLayoutthis
最简单的布局——FitLayoutspa
制做伸缩菜单的布局——Accordion.net
实现操做向导的布局——CardLayout3d
控制位置和大小的布局——AbsoluteLayout
表单专用的布局——FormLayout
分列布局——ColumnLayout
表格状布局——TabelLayout
BoxLayout——HBox
BoxLayout——VBox
1、border 布局
简介:也称“边界布局”、“方位布局”。该布局把容器分为东、南、西、北、中五个区域,分别由east、south、west、north、center表示。咱们须要在items中使用region参数来给它定位。
注意:north和south部分只能设置高度(height),west和east部分只能设置宽度(width)。center区域必须有,且它的大小是在其余4个部分设置好之后自动计算出来的,因此不能为它指定宽度值或高度值。
js代码:
运行结果:
2、form 布局
简介:也称“表单布局”。是一种专门用于管理表单中输入字段的布局,这种布局在程序中主要用于建立表单字段或表单元素使用。
注意:它能够是一种布局样式,也能够是一个组件。也就是说既能够 layout : ‘form’ 也能够 new Ext.FormPanel 来使用它。区别就是对于 Panel 咱们配置了 layout 为 form ,而对于 FormPanel 它默认的布局就是form布局,因此对于习惯于用 Panel 而不习惯用 FormPanel 的朋友尽管用Panel,可是必定要考虑好提交的问题,若是使用 panel 的话,要作提交但是要一个个得到控件的值的,而 FromPanel 则不须要。
js代码:
运行结果:
3、absolute 布局
简介:也称“绝对定位布局”。该布局使用很简单粗暴,直接给出其x、y值来定位便可。
注意:x、y值是相对其父容器而言,从左上角(0,0)开始计算。
js代码:
运行结果:
4、column 布局
简介:也称“列布局”。该布局把整个容器组件当作一列,而后往里面放入子元素的时候,能够经过子元素制定columnWidth和width来制定列的宽度,columnWidth是按百分比来制定列的宽度,width是按照绝对像素来制定列的宽度。在实际应用中能够两种混合使用。
注意:该布局的子面板的全部columnWidth值必须在0~1之间或者是百分比。columnWidth值的总和应该为1,即100%。另外,若是任何子面板没有指定columnWidth值,那么它将占满剩余的空间。
js代码:
运行结果:
5、accordion 布局
简介:也称“可折叠布局”、“手风琴布局”。该布局的容器的子元素是可折叠的形式表现。
注意:只有Ext.Panels 和全部Ext.panel.Panel 子项,才可使用accordion布局。
js代码:
运行结果:
6、table 布局
简介:也称“表格布局”。按照普通表格的方法布局子元素,用 layoutConfig:{columns:3} ,//将父容器分红3列。它的item可配置的参数有:rowspan 合并的行数;colspan 合并的列数。
注意:table布局自己并无什么特殊功能,它所实现的效果其实彻底能够用 border 布局和 column 布局等方式代替,并且这些布局方式更灵活。
js代码:
运行结果:
7、fit 布局
简介:也称“自适应布局”。子元素将自动填满整个父容器。。
注意:在fit布局下,对其子元素设置宽度是无效的。若是在fit布局中放置了多个组件,则只会显示第一个子元素。
js代码:
运行结果:
8、card 布局
简介:也称“卡牌布局”、“卡片式布局”。该布局最TMD麻烦了。这种布局用来管理多个子组件,而且在任什么时候刻只能显示一个子组件。这种布局最经常使用的状况是向导模式,也就是咱们所说的分步提交。
注意:因为此布局自己不提供分步导航功能,因此须要用户本身开发该功能。能够经过调用 setActiveItem( ) 函数来实现跳转。因为只有一个面板处于显示状态,那么在初始时,咱们可使用 activeItem: 属性来指定某一个面板的显示。对了,若是Ext-4 以后的版本就不是这样操做了。
js代码:
运行结果:
9、anchor 布局
简介:也称“锚点布局”。感受无卵用, anchor布局将使组件固定于父容器的某一个位置,使用anchor布局的子组件尺寸相对于容器的尺寸,即父容器容器的大小发生变化时,使用anchor布局的组件会根据规定的规则从新渲染位置和大小。
注意:anchor属性为一组字符串,可使用百分比或者是-数字(注意前面是有负号的,即数字为负数)来表示,字符串之间用空格隔开。
js代码:
运行结果:
10、tab 布局
简介:也称“分页布局”、“标签布局”。
注意:码字好累,这个布局你懂得,很少说了。
js代码:
运行结果:
11、vbox 布局
简介:也称“竖直布局”。vertical box ,垂直方向的分行显示。它的 item 有一个 flex属性,其值越大,对应的组件就会占据越大的空间。
注意:无
js代码:
运行结果:
12、hbox 布局
简介:也称“水平布局”。horizontal box ,水平方向的分列显示。和 vbox 相似,有flex 属性。
注意:无
js代码:
运行结果:
总结:
简单总结起来border布局通常做为页面总体布局来使用;fit布局适用于那种须要将子类彻底占满父类容器的状况;column布局用于多列;form是一种表单特有布局方式,实质是一行一控件的形式;table布局适用多行多列可是有时宽高不太容易控制。并且值得强调的一点就是给一个控件设置layout属性,其实指的是其内部控件的布局方式而不是它自己的布局,这点要搞清楚。
----------------------------------------------------- end -----------------------------------------------------
最后感谢如下连接的做者提供的资源参考:
原文连接:https://blog.csdn.net/fifteen718/article/details/51482826