所有ExtJs的Layout Class都在API Documentation->Ext->Layout下,如果想用哪种而已方式可以直接查询API帮助文档.我写这篇文章的意思是把学习的时候做的笔记保留下了,为了以后使用方便.
下面列出的是一些常用的Layout.
layout.html页面代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>ExtJs Layout Example</title> <link rel="stylesheet" type="text/css" href="../ext-3.2.0/resources/css/ext-all.css"></link> <script type="text/javascript" src="../ext-3.2.0/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="../ext-3.2.0/ext-all.js"></script> <script type="text/javascript" src="../js/layout.js"></script> </head> <body> <div id="columnId"></div> <div id="borderId"></div> <div id="fitId"></div> <div id="accordionId"></div> <div id="anchorId"></div> </body> </html>
以下的代码都是放在..js/layout.js文件中的.
1.columnLayout
/* 创建column布局 */ function createColumnPanel(){ var obj = { title : '父面板', width : 600, height : 400, layout : 'column',//一列一列的显示容器中的元素 items : [{ xtype : 'panel',//子元素中默认的显示类型为:panel.也可以根据需要换成button等. title : '页面1', columnWidth : 0.5,//以面板整体宽度大小的25%大小进行填充. height : 200,//高度为固定值. layout : 'column', items : [{ xtype : 'button', text : '按钮1', columnWidth : 0.5 },{ xtype : 'button', text : '按钮2', columnWidth : 0.5 }], html : '我是面板1' },{ title : '页面2', columnWidth : 0.5, height : 50, html : '我是面板2' }] } ; //实例化父面板 var mainPanel = new Ext.Panel(obj) ; //将父面板添加到id为columnId的标签上. mainPanel.render("columnId") ; }
2.borderLayout
/* 创建border布局 */ function createBorderPanel(){ var obj = { title : '父面板', width : 600, height : 400, layout : 'border',//以东南西北中的方式显示容器中的元素 items : [{ title: 'North Region', region: 'north', // 上 height : 50 },{ title: 'South Region', region: 'south', // 下 height: 50 },{ title: 'West Region', region:'west', // 左 split: true, //设置可以调整该panel的大小(宽度) collapsible: true, //设置该面板是否可以收缩 width: 50 },{ title: 'East Region', region: 'east', // 右 width : 50 },{ title: 'Center Region', region: 'center', // 中,此面板必须存在. layout: 'border', items: [{ title: 'west', region: 'west', width: '50%' },{ title: 'center', region: 'center', }] }] } ; //实例化父面板 var mainPanel = new Ext.Panel(obj) ; //将父面板添加到id为borderId的标签上. mainPanel.render("borderId") ; }
3.fitLayout
/* 创建fit布局 */ function createFitPanel(){ var obj = { title : '父面板', width : 600, height : 400, layout : 'fit',//填满整个外部容器,只能看到一个子元素 items : [{ title : '页面1', html : '我是面板1' },{ title : '页面2', html : '我是面板2' }] } ; //实例化父面板 var mainPanel = new Ext.Panel(obj) ; //将父面板添加到id为columnId的标签上. mainPanel.render("fitId") ; }
4.accordionLayout
/* 创建accordion布局 */ function createAccordionPanel(){ var obj = { title : '父面板', width : 600, height : 400, layout : 'accordion',//制作应用程度菜单式样式. items : [{ title : '菜单1', items : [{ xtype : 'panel', title : 'a', }] },{ title : '菜单2', items : [{ xtype : 'panel', title : 'a', },{ xtype : 'panel', title : 'b', }] }] } ; //实例化父面板 var mainPanel = new Ext.Panel(obj) ; //将父面板添加到id为columnId的标签上. mainPanel.render("accordionId") ; }
5.anchorLayout
/* 创建anchor布局 */ function createAnchorPanel(){ var obj = { title : '父面板', width : 600, height : 400, layout : 'anchor',// 好处1:可以让子元素的大小根据父元素的大小确定. items : [{ title : '菜单1', anchor : '50% 30%' //利用achor方式布局子元素. },{ title : 'b', width : 50, height : 50 }] } ; //实例化父面板 var mainPanel = new Ext.Panel(obj) ; //将父面板添加到id为columnId的标签上. mainPanel.render("anchorId") ; }
Ext.onReady方法如下:
/* 页面成功载入后会第一个调用此方法 */ Ext.onReady(function(){ createColumnPanel() ;//创建column布局 document.getElementById("columnId").style.display = 'none' ;//隐藏column布局 createBorderPanel() ;//创建border布局 document.getElementById("borderId").style.display = 'none' ;//隐藏border布局 createFitPanel() ;//创建fit布局 document.getElementById("fitId").style.display = 'none' ;//隐藏fitId布局 createAccordionPanel() ;//创建accordion布局 document.getElementById("accordionId").style.display = 'none' ;//隐藏accordion布局 createAnchorPanel() ;//创建anchor布局 }) ;