EXT7大布局解析

1anchor:其值可以使百分比和数值,数值一般为负数,其代表的意思是如果宽度和长度中有一个设定值了,则anchor代表的是未设置的那个,如果两者都没有设定具体值,则如果需要使用anchor则需要anchro:'ww,hh'

Ext.onReady(function() {  

       Ext.create('Ext.Window',{
        title:'Anchor layout',
        width:400,
        height:400,
        layout:'anchor',
        plain: true,
        items:[
            Ext.create('Ext.panel.Panel',{
                title:'panel1',
                height:100,
                anchor:'-50',
                html:'高度等于100,宽度= 容器宽度-50'
            }),
            Ext.create('Ext.panel.Panel',{
                title:'panel2',
                height:100,
                anchor:'50%',
                html:'高度等于100,宽度=容器的宽度*50%'
            }),
            Ext.create('Ext.panel.Panel',{
                title:'panel3',
                anchor:'-10,-200',
                html:'高度等于容器高度-10,宽度等于容器宽度-200'
            })
        ]
        
    }).show();
    });

2 border:将容器分为五个区域:east,south,west,north,center

Ext.onReady(function(){
         var tab = Ext.create('Ext.tab.Panel',{
        region:'center',//border布局,将页面分成东,南,西,北,中五部分,这里表示TabPanel放在中间  
        margins:'3,3,3,0',
        activeTab:0,
        defaults:{
            autoScroll:true
        },
        items:[{
            title:'tab1',
            html:'第一个tab内容'
        },{
            title:'tab2',
            html:'第二个tab内容'
        },{
            title:'tab3',
            html:'第三个tab内容'
        }]
        
    })
    var nav = Ext.create('Ext.panel.Panel',{
        title:'navigation',
        region:'west',
        split:true,
        width:200,
        collapsible:true,//允许伸缩
        margins:'3,0,3,3',
        cmargins:'3,3,3,'
    });
    Ext.create('Ext.Window',{
        title:'Layout Window',
        width:600,
        height:350,
        closable:true,
        border:false,
        plain:true,
        layout:'border',
        closeAction:'hide',
        items:[nav,tab]
    }).show();
)};
3.accordion:这个风格是手风琴式的,效果是如果 有多个item,则点击其中一个,则展开,其他的则收缩。
Ext.OnReady(function(){  
     Ext.create('Ext.panel.Panel',{
        title:'容器组件',
        layout:'accordion',
        width:600,
        height:200,
        layoutConfig:{animate:false},
        items:[{
           title:'元素1',html:''
        },{
           title:'元素2',html:''
        },{
           title:'元素3',html:''
        },{
           title:'元素4',html:''
        }]
        
    });
});

4card:像安装向导一样,一张一张显示
Ext.onReady(function(){
    var navigate = function(panel,direction){
        var layout = panel.getLayout();
        layout[direction]();
        Ext.getCmp('move-prev').setDisabled(!layout.getPrev());
        Ext.getCmp('move-next').setDisabled(!layout.getNext());
    };
    Ext.create('Ext.panel.Panel',{
                title:'Example Wizard',
                height:500,
                width:400,
                layout: 'card',
                activeItem:0,
                bodyStyle:'padding:15px',
                animCollapse:true,
                renderTo:Ext.getBody(),
                defaults:{
                        // applied to each contained panel
                    border: false
                   },
                bbar:[{
                    id:'move-prev',
                    text:'back',
                    handler:function(btn){
                        navigate(btn.up("panel"),"prev");
                    },
                    disabled:true
                },'->',{
                    id:'move-next',
                    text:"next",
                    handler:function(btn){
                        navigate(btn.up("panel"),"next");
                    }
                }],
                items:[{
                    id:'card-0',
                    html:'<h1>Welcome to the Wizard!</h1>'
                },{
                    id:'card-1',
                    html:'<p>step 2 of 3 </p>'
                },{
                    id:'card-2',
                    html:'<h1>Congratulations!</h1><p>Step 3 of  3-complete</p>'
                }]
            });
});
5是一种专门用于管理表单中输入字段的布局
Ext.onReady(function() {  
        var win = Ext.create('Ext.Window',{  
            title: "form Layout",  
            height: 150,  
            width: 230,  
            plain: true,  
            bodyStyle: 'padding:15px',  
            items:   
            {  
                xtype: "form",  
                labelWidth: 30,  
                defaultType: "textfield",  
                frame:true,  
                items:   
                [  
                    {  
                        fieldLabel:"姓名",  
                        name:"username",  
                        allowBlank:false  
                    },  
                    {  
                        fieldLabel:"呢称",  
                        name:"nickname"  
                    },  
                    {  
                        fieldLabel: "生日",  
                        xtype:'datefield',  
                        name: "birthday",  
                        width:127  
                    }  
                ]  
            }  
        });  
        win.show();  
    });  
6column:把整个容器看成一列,然后向容器放入子元素时
Ext.onReady(function() {  
        var win = Ext.create('Ext.Window',{  
            title: "Column Layout",  
            height: 300,  
            width: 400,  
            plain: true,  
            layout: 'column',  
            items: [{  
                title:"width=50%",  
                columnWidth:0.5,  
                html:"width=(容器宽度-容器内其它组件固定宽度)*50%",  
                height:200  
            },  
            {  
                title:"width=250px",  
                width: 200,  
                height:100,  
                html:"固定宽度为250px"  
            }              
            ]  
        });  
        win.show();  
    });  
7fit:填充整个容器(如果多个子元素则只有一个元素充满整个容器)
Ext.OnReady(function(){  
   Ext.create(Ext.create(Ext.panel.Panel',  
      {  
       renderTo:'paneldiv',  
       title:'容器组件',  
       layout:'fit',  
       width:500,  
       height:100,  
       items:[  
        {title:'子元素1'},  
        {title:'子元素2'},  
        {title:'子元素3'},  
        {title:'子元素4'},  
        {title:'子元素5'}  
       ]  
      }  
     );  
});



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值