PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » YUI,ext JS » Ext 布局Layout使用总结
本页主题: Ext 布局Layout使用总结 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

phpwhy

头衔:总管 总管
该用户目前不在线
级别: 管理员
精华: 3
发帖: 633
威望: 550 点
金钱: 5560 PYMB
贡献值: 0 点
在线时间:12(小时)
注册时间:2005-09-15
最后登录:2008-11-25

Ext 布局Layout使用总结


布局Layout的一些概念:区域(region):任何一个封闭的DOM元素,例如body,div,span等布局管理器(layout manager):负责管理页面中的区域。在Ext中布局管理的主要的用户组件是BorderLayout类。在BorderLayout中划分好了一些预定的区域。可用的区域分别有south, east, west, north,和center。每一个BorderLayout对象都提供这些区域,但只有center要求必须使用的。面板(Panel):是区域管理(region management)的另外一个组件。面板也相当于一个容器,它将页面元素(div等)与布局layout中的区域进行关联。 使用示例一:简单的布局使用说明:第一步:创建BorderLayout对象layout,并指定layout的容器为document.body,在这个layout中包括四个区域,分别对应BorderLayout预置的north、south、west和center,对于每一区域都可以进行各种属性的设置,包括宽度、是否带有标题、是否可伸缩等等,代码示例如下js 代码
    var layout = new Ext.BorderLayout(document.body, {   
  1.     north: {   
  2.         split:false,   
  3.         initialSize: 35   
  4.     },   
  5.     south: {   
  6.         split:false,   
  7.         initialSize: 20   
  8.     },   
  9.     west: {   
  10.         split:false,   
  11.         initialSize: 200,   
  12.         collapsible: false 
  13.     },   
  14.     center: {   
  15.         autoScroll: true 
  16.     }   
  17. });   
第二步:为layout填充内容,分别为north、south、west和center填充了相应的内容面板ContentPanel,layout.beginUpdate()和layout.endUpdate()表示在其间的添加过程中先不要对加入的对象排版布局。这样的好处是避免了ContentPanel有对象加入时,导致UI的刷新,改进了整体的用户体验。如下所示:js 代码
    layout.beginUpdate();   
  1. layout.add('north', new Ext.ContentPanel('header', {fitToFrame:true}));   
  2. layout.add('south', new Ext.ContentPanel('footer', {fitToFrame:true}));   
  3. layout.add('west', new Ext.ContentPanel('nav', {fitToFrame:true}));   
  4. layout.add('center', new Ext.ContentPanel('content'));   
  5. layout.endUpdate(); 
第三步:页面区域内容,在html页面中可以通过div进行区域内容设置,如下html代码
    <div id="header" class="x-layout-inactive-content"> 
  1.     ......   
  2. </div> 
  3. <div id="nav" class="x-layout-inactive-content"> 
  4.     ......   
  5. </div> 
  6. <div id="content" class="x-layout-inactive-content"> 
  7.       ......   
  8. </div> 
  9. <div id="footer" class="x-layout-inactive-content"> 
  10.       ......   
  11. </div> 
效果图如下: 使用示例二:嵌套的布局嵌套的布局可以通过在BorderLayout里面添加BorderLayout来实现,这中间需要NestedLayoutPanel来对里面的BorderLayout包装,代码示例如下:js 代码
    var layout = new Ext.BorderLayout(document.body, {   
  1.     west: {   
  2.         split:true,   
  3.         initialSize: 200,   
  4.         titlebar: true,   
  5.         collapsible: true,   
  6.         minSize: 100,   
  7.         maxSize: 400   
  8.     },   
  9.     center: {   
  10.         autoScroll: false 
  11.     }   
  12. });   
  13. layout.beginUpdate();   
  14.    
  15. layout.add('west', new Ext.ContentPanel('nav', {title: 'Navigation', fitToFrame:true, closable:false}));   
  16. var innerLayout = new Ext.BorderLayout('content', { //嵌套的layout   
  17.     south: {   
  18.         split:true,   
  19.         initialSize: 200,   
  20.         minSize: 100,   
  21.         maxSize: 400,   
  22.         autoScroll:true,   
  23.         collapsible:true,   
  24.         titlebar: true 
  25.     },   
  26.     center: {   
  27.         autoScroll:true 
  28.     }   
  29. });   
  30. innerLayout.add('south', new Ext.ContentPanel('inner1', "More Information"));   
  31. innerLayout.add('center', new Ext.ContentPanel('inner2'));   
  32. layout.add('center', new Ext.NestedLayoutPanel(innerLayout)); //嵌套包装   
  33. layout.endUpdate();   
Layout布局属性说明(自己的理解翻译可能不准确):split:true, 边框是否可以拖动initialSize: 200, 初始大小titlebar: true, 是否带有标头栏collapsible: true, 是否可以卷缩minSize: 100, 最小大小maxSize: 400 最大大小 页面效果如:
你适合当程序员吗?给想学编程的朋友
http://www.phpwhy.com/read.php?tid=5258&page=1&toread=1

  远程免费试听http://www.phpwhy.com/bbs/read.php?tid=4514
学校照片见 http://www.phpwhy.com/bbs/read.php?tid=4091


PHP培训,网站建设咨询
联系电话: 0571-85980046 ,0571-86704910
联系人:何老师
qq:310172
地址:杭州下沙4号路物美西子阳光星城1座501室智达电脑培训中心
顶端 Posted: 2008-01-20 21:31 | [楼 主]
PHP学会网 php培训网 PHP暑期培训 PHP寒假培训 PHP假期培训 » YUI,ext JS

时:12-02 13:49 Copyright © 2006 phpwhy.com 权
ICP05060669

曳息 -