Ext学习5

EXtT的布局(Layout)

       Layout的含意是划分好一些预定的区域。可用的区域分别有south, east, west, north,和center。每一个BorderLayout对象都提供这些区域但只有center要求必须使用的。如果你在单独一个区域中包含多个面板,你可通过NestedLayoutPanel 类套嵌到BorderLayout 实例中。

        面板(Panel)是区域管理(region management)的另外一个组件。面板提供了这么一个地方,可为您的EXT器件(widget)、加载的HTML,嵌入的IFrames、或者是你日常在HTML页面上摆放的随便一样东西。NestedLayoutPanel也是一个面板,只不过用于链接多个BorderLayout的区域,其它的面板包括内容面板 ContentPanel,Grid面板 GridPanel,和Tree面板 TreePanel。

        简单的例子 

         下面的layout包含 north, south, east, west,和center的区域,而且每个区域包含一个ContentPanel,各区域之间使用得了分隔条分割开。

        var mainLayout = new Ext.BorderLayout(document.body, 

              { north:

                      { split: true, initialSize: 50 }, 

               south:

                     { split: true, initialSize: 50 }, 

               east:

                    { split: true, initialSize: 100}, 

              west: 

                 { split: true, initialSize: 100 }, 

            center:

                 { }

         });

 这是一个非常基本的layout,只是分配了东南西北中间的区域、分隔条、设置一下初始尺寸,并最迟定义中间区域。本例中, BorderLayout被绑定到"document.body"这个DOM元素,其实BorderLayout还可以绑定到任何一个封闭的DOM元素。定义好BorderLayout之后,我们加入ContentPanel对象(基于本例)。

          mainLayout.beginUpdate(); 

           mainLayout.add('north', 

                      new Ext.ContentPanel('north-div',

                            { fitToFrame: true, closable: false })

                  );

          mainLayout.add('south', 

                 new Ext.ContentPanel('south-div',

                        { fitToFrame: true, closable: false })

               ); 

        mainLayout.add('east', 

                 new Ext.ContentPanel('east-div', 

                      { fitToFrame: true, closable: false })

           ); 

        mainLayout.add('west',

                 new Ext.ContentPanel('west-div', 

                    { fitToFrame: true, closable: false })

        ); 

        mainLayout.add('center', 

                new Ext.ContentPanel('center-div', 

                  { fitToFrame: true })

     );

     mainLayout.endUpdate();

 当前的例子是将ContentPanel加入到所有区域中。由调用mainLayout.beginUpdate()开始。beginUpdate ()告诉BorderLayout对象在执行endUpate()方法之前,先不要对加入的对象排版布局。这样的好处是避免了ContentPanel有对象加入时,导致UI的刷新,改进了整体的用户体验。执行beginUpdate()之后,加入五个ContentPanel对象到区域。所有的 ContentPanel对象(除中间的那个外),都设置是可关闭的(closbale)。所有的ContentPanel对象也都设置为自动适配它们的父元素。最后执行endUpdate()渲染layout。  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值