ExtJS 的布局

容器中可以放多个组件,甚至可以放其他容器
布局负责帮助容器,管理其中的组件。
容器中的layout选项(属性)用于控制容器的布局。

1.垂直布局与水平布局

Ext.onReady(function () {

    Ext.create('Ext.window.Window', {
        title: '布局的演示',
        width: 600,
        height: 400,
        items: [

            //window中的布局,默认垂直布局

            //第一个组件
            {
                fieldLabel: '作者',
                xtype: 'textfield'
            },

            //第二个组件
            {
                fieldLabel: '出版社',
                xtype: 'textfield'
            },

            //第三个组件 没有xtype,默认panel
            {
                //panel中的布局,显式指定水平布局
                title: '时间',
                layout: 'hbox',
                height: 80,
                items: [{
                        fieldLabel: '开始日期',
                        xtype: 'datefield'
                    }, {
                        fieldLabel: '结束日期',
                        xtype: 'datefield'
                    }

                ]

            }

        ]

    }).show();

});

2.Resizer改变上下左右大小

Ext.onReady(function () {

    Ext.create('Ext.window.Window', {

        title: '布局的演示:Resizer ',
        width: 600,
        height: 400,
        items: [
            //window中的布局,默认垂直布局
            //第一个组件
            {
                id : 'author',
                fieldLabel: '作者',
                xtype: 'textfield'
            },
            //第二个组件
            {
                id: 'addr',
                fieldLabel: '出版社',
                xtype: 'textfield'
            },
            //第三个组件 没有xtype,默认panel
            {
                //panel中的布局,显式指定水平布局
                title: '时间',
                layout: 'hbox',
                height: 80,
                items: [{
                        fieldLabel: '开始日期',
                        xtype: 'datefield'
                    }, {
                        fieldLabel: '结束日期',
                        xtype: 'datefield'
                    }
                ],
                //第三个组件的resize
                resizable:{
                  handles:'n s w',  //哪些方向可以拉伸
                  minWidth:200,
                  minHeight:100
                }

            }

        ]

    }).show();

    Ext.create('Ext.resizer.Resizer',{
        el: 'author',
        handles :'all'
    });

});

3.Splitter分割布局

Ext.onReady(function () {

    Ext.create('Ext.panel.Panel', {

        title: '布局的演示:Splitter ',
        width: 600,
        height: 400,
        renderTo:Ext.getBody(),

        layout:{
          type:'hbox',
          align:'center'
        },

        items: [

            //第一个组件  没有xtype 默认为panel
            {

                title:'第一个panel',
                height:'100%',
                flex:2                 //比例
            },
            // splitter
            {
                xtype:'splitter',

            },
            //第二个组件  没有xtype 默认为panel
            {

                title:'第二个panel',
                height:'100%',
                flex:3                 //比例
            },
            // splitter
            {
                xtype:'splitter',

            },
            //第三个组件  没有xtype 默认为panel
            {

                title:'第三个panel',
                height:'100%',
                flex:4                 //比例
            }

        ]

    });

});

4.Accordion折叠布局

Ext.onReady(function () {

    Ext.create('Ext.panel.Panel', {

        title: '布局的演示:Accordion ',
        width: 600,
        height: 400,
        renderTo:Ext.getBody(),

        layout:'accordion',

        items: [

            //第一个组件  没有xtype 默认为panel
            {
                title:'第一个panel',
            },

            //第二个组件  没有xtype 默认为panel
            {
                title:'第二个panel',
            },

            //第三个组件  没有xtype 默认为panel
            {
                title:'第三个panel',
            }

        ]

    });

});

5.Border布局(把panel分割成5个部分)

Ext.onReady(function () {

    Ext.create('Ext.panel.Panel', {

        title: '布局的演示:border ',
        width: 600,
        height: 500,

        renderTo:Ext.getBody(),

        layout:'border',
        items: [

            //第一个组件  没有xtype 默认为panel
            {
                title:'上侧panel',
                height:100,
                region :'north'
            },

            //第二个组件  没有xtype 默认为panel
            {
                title:'左侧panel',
                width:80,
                split:true,
                region :'west'
            },

            //第三个组件  没有xtype 默认为panel
            {
                title:'中央panel',
                region :'center'
            },
            //第四个组件  没有xtype 默认为panel
            {
                title:'左侧panel',
                width:80,
                region :'east'
            },
            //第五个组件  没有xtype 默认为panel
            {
                title:'下侧panel',
                height:100,
                collapsible:true,
                region :'south'
            },
        ]

    });

});
时间: 2024-09-07 01:37:57

ExtJS 的布局的相关文章

ExtJS之布局篇 .

Ext布局总的来说是很灵活的,因此我觉得有必要一块探讨一下. Ext常用的布局都在Ext.layout下,这里几乎涵盖了所有的布局方式(但是值得注意的是通常我们不是直接通过"new"来创建这些类的对象然后往里面添加控件使用,而是作为控件一个配置属性使用让Ext自动创建对应的类),满足开发者需求.那么我们就其中常用的方式逐一介绍. Border布局 Border布局是Ext中常用布局方式(经常用到整个页面的总体布局),感觉用的几率很大.在看代码之前先熟悉一种特殊的容器ViewPort,它

Extjs Form布局

FormPanel有两种布局:form和column,form是纵向布局,column为横向布局.默认为后者.使用layout属性定义布局类型.对于一个复杂的布局表单,最重要的是正确分割,分割结果直接决定布局能否顺利实现.如果不再使用默认布局,那么我们必须为每一个元素指定一种布局方式,另外,还必须遵循以下几点:[1]落实到任何一个表单组件后,最后总是form布局[2]defaultType属性不一定起作用,必须显式为每一个表单组件指定xtype或new出新对象[3]在column布局中,通过co

ExtJS accordion布局

  Ext.onReady(function(){ var _panel = new Ext.Panel({ title:"人员信息", renderTo:Ext.getBody(), frame:true, width:500, height:300, layout:"accordion", layoutConfig: { animate: true }, items:[{title:"子元素1",html:"这是子元素1中的内容&q

学习ExtJS form布局_extjs

一. Form布局由类Ext.layout.FormLayout定义,名称为form,是一种专门用于管理表单中输入字段的布局,这种布局主要用于在程序中创建表单字段或表单元素等使用. hideLabels:tru表示隐藏标签,默认为false. labelAlign:标签队齐方式left.right.center,默认为left. 复制代码 代码如下: Ext.onReady(function(){ var _panel = new Ext.Panel({ title:"人员信息", r

学习ExtJS accordion布局_extjs

一.Accordion布局由类Ext.layout.Accordion定义,表示可折叠的布局,点击每一个子元素的头部名称或右边的按钮,则会展开该面板,并收缩其它已经展开的面板. layoutConfig:true表示在执行展开折叠时启动动画效果,默认值为false. 二.应用举例 复制代码 代码如下: Ext.onReady(function(){ var _panel = new Ext.Panel({ title:"人员信息", renderTo:Ext.getBody(), fr

学习ExtJS border布局_extjs

一.Border布局由类Ext.layout.BorderLayout定义,布局名称为border.该布局把容器分成东南西北中五个区域,分别由east,south, west,north, cente来表示,在往容器中添加子元素的时候,我们只需要指定这些子元素所在的位置,Border布局会自动把子元素放到布局指定的位置. 二.应用举例 复制代码 代码如下: Ext.onReady(function(){ new Ext.Viewport({ layout:"border", items

学习ExtJS fit布局使用说明_extjs

一.Fit布局,子元素将自动填满整个父容器(对元素设置宽度无效),如果容器组件中有多个子元素,则只会显示第一个子元素. 二.应用举例 复制代码 代码如下: Ext.onReady(function(){ new Ext.Panel({ renderTo:Ext.getBody(), title:"容器组件", layout:"fit", width:500, height:100, items:[{title:"子元素1",html:"

学习ExtJS Column布局_extjs

一.属性(构造参数) baseCls:"x-plain" Panel背景色颜色. layout:"column" Panel进行列布局. 在子元素中指定使用columnWidth或width来指定子元素所占的列宽度. columnWidth表示使用百分比的形式指定列宽度. width则是使用绝对象素的方式指定列宽度,在实际应用中可以混合使用两种方式. 二.应用举例 复制代码 代码如下: Ext.onReady(function(){ new Ext.Window({

自己动手写UI库——引入ExtJs(布局)

第一: 来看一下最终的效果 第二: 来看一下使用方法: 第三: Component类代码如下所示: public class Component     {                   public Component()         {         }         private string id;         public string Id         {             get             {                 return