初学者比较容易犯的布局错误(手风琴布局)


从上图面板中那条横线可以很清楚的看出树面板的容器没有使用Fit布局造成了树面板没有填满整个布局,而是根据自身大小进行显示。


实际的代码:

var mainAccirdion = new Ext.Panel({
        id: "MainAccirdion",
        region: 'west',
        split: true,
        layout: 'accordion',
        collapsible: true,
        width: 200,
        layoutConfig: {
            titleCollapse: false,
            animate: true,
            activeOnTop: true
        },
        items: [{
            title: '病人报告列表',
            items: [{ items: treepanel, flex: 1, layout: 'fit' }]
        }
        ]
    })


代码中,首先存在的问题是,使用了不必要的嵌套布局,其实这个在第一层直接使用treepanel就可以了,没必要再套容器。由于套多了一层布局,就造成了虽然在下一层布局使用了Fit布局,但是还是不能填满顶层容器。

在我的书《Ext JS权威指南》的9.8.2节中有一个示例可供参考,代码如下:

Ext.create("Ext.Viewport",{
    layout:{type:"border",padding:5},
    items:[
        //区域定义
        {xtype:"container",region:"north",height:30,
            html:"<h1>示例9-5 单页面应用中使用Card实现“页面”切换</h1>"
        },
        {region:"west",split:true,width:200,minWidth:100,
            layout:"accordion",
            items:[
                {title:"产品管理",xtype:"treepanel",
                    rootVisible: false,
                    root: {
                        text: 'root',id: 'rootProduct',
                        expanded: true,children:[
                            {text:"产品管理",id:"Product",leaf:true},
                            {text:"统计管理",id:"Stat",leaf:true}
                        ]
                    },
                    listeners:{itemclick:itemclick}
                },
                {title:"系统管理",xtype:"treepanel",
                    rootVisible: false,
                    root: {
                        text: 'root',id: 'rootSyetem',
                        expanded: true,children:[
                            {text:"用户管理",id:"User",leaf:true},
                            {text:"系统设置",id:"System",leaf:true}
                        ]
                    },
                    listeners:{itemclick:itemclick}
                }
            ]
        },
        {region:"center",layout:'card',border:false,
            id:"ContentPage",loader:true,
            items:[
                {title:"产品管理",id:"ProductContent",tbar:[
                    {text:"增加"},{text:"编辑"},{text:"删除"}
                ]}
            ],
            listeners:{
                add:function(cmp,con,pos){
                    if(this.items.length>1){
                        this.getLayout().setActiveItem(pos);
                    }
                }
            }
        }
    ]
})

posted on 2013-04-07 13:32  木鱼哥  阅读(185)  评论(0编辑  收藏  举报

导航