日期:2014-05-16 浏览次数:20449 次
EXT标准布局类
面板相当于一张干净的白纸,如果直接在上面添加内容,将很难控制面板中内容的显示位置,面板元素越多就越显得凌乱,所以需要在面板上划分不同的区域,将面板内容展示到希望的位置上。ExtJS通过提供多种布局类来为面板提供支持,主要包括如下10种: 
ContainerLayout(容器布局) 
FitLayout(自适应布局) 
AccordionLayout(折叠布局) 
CardLayout(卡片式布局) 
AnchorLayout(锚点布局) 
AbsoluteLayout(绝对位置布局) 
FormLayout(表单布局) 
ColumnLayout(列布局) 
TableLayout(表格布局) 
BorderLayout(边框布局) 
接下来分别介绍这10种布局类的特点及使用方式。 
1 ContainerLayout容器布局 
Ext.layout.ContainerLayout 提供了所有布局类的基本功能,它没有可视化的外观,只是提供容器作为布局的基本逻辑,这个类通常被扩展而不通过 new 关键字直接创建。如果面板(panel)没有指定任何布局类,则它将会作为默认布局来创建,表5-4是主要配置项。 
表5-4 Ext.layout.ContainerLayout主要配置项目表
?
| 
 配置项  | 
 参数类型  | 
 说明  | 
| 
 activeItem  | 
 String/Number  | 
 一个对当前活动组件的引用。activeItem只在那些一次只能显示一个 items 项目的布局中生效,例如:Ext.layout.Accordion、Ext.layout.CardLayout、Ext.layout.FitLayout  | 
?
?
2 FitLayout自适应布局
Ext.layout.FitLayout 是布局的基础类,对应面板布局配置项(layout)的名称为 fit,使用 fit 布局将使面板子元素自动充满容器,如果在当前容器中存在多个子面板则只有第一个会被显示。 
注意:在本节的示例之前会简单的介绍新概念,组件的xtype类型。xtype类型相当于组件的别名,通过使用xtype类型可以实现组件的延时创建。在后续的示例中会大量使用xtype来创建组件,这将有利于读者形成使用xtype的习惯,而减少new关键字的使用。 
下面是自适应布局的一个简单的示例。 
代码5-7:FitLayout(自适应布局)示例 
<script type="text/javascript"> 
Ext.onReady(function(){ 
Ext.BLANK_IMAGE_URL ='../../extjs2.0/resources/images/default/s.gif'; 
var panel = new Ext.Panel({ 
layout :'fit', 
title:'Ext.layout.FitLayout布局示例', 
frame:true, //渲染面板 
height : 150, 
width : 250, 
applyTo :'panel', 
defaults : { //设置默认属性 
bodyStyle:'background-color:#FFFFFF' //设置面板体的背景色 
}, 
//面板items配置项默认的xtype类型为panel,该默认值可以通过defaultType配置项进行更改 
items: [ 
{ 
title : '嵌套面板一', 
html : '面板一' 
}, 
{ 
title : '嵌套面板二', 
html : '面板二' 
} 
] 
}) 
}); 
</script> 
在代码5-7中共为外层面板添加了2个子面板,title分别是“嵌套面板一”和“嵌套面板二”,并指定外层面板的布局类型为fit,由图 5-11可以看到“嵌套面板一”充满了整个外层面板,而“嵌套面板二”并没有显示出来。运行效果如图5-11所示。

Ext.layout.Accordion 扩展自 Ext.layout.FitLayout 布局,对应面板布局(layout)配置项的名称为accordion。该布局会包含多个子面板,任何时候都只有一个子面板处于打开状态,每个子面板都内置了对展开和收缩功能的支持。表5-5列出了它的主要配置项目。
表5-5 Ext.layout.Accordion主要配置项目表
?
| 
 配置项  | 
 ?  | 
 参数类型  | 
 说明  | 
| 
 activeOnTop  | 
 ?  | 
 Boolean  | 
 是否保持展开的子面板处于父面板的顶端,true则交换当前展开面板到顶端,false则保持原来的位置不动。  | 
| 
 animate  | 
 ?  | 
 Boolean  | 
 设 
                        免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
                     
                    
                
                
            
            
            
    
        
   
 |