2013-02-20 43 views
1

我有以下添加到面板的组件。当我将布局设置为边框时,不会呈现孩子。但是,如果我将布局更改为其他布局(例如hbox,vbox,auto),它就会起作用。ExtJS边框布局不会渲染其子代

你可以请建议我做错了什么。我使用ExtJS的4.1.3

Ext.define('WebAdmin.view.reference.CountryMain', { 
    extend  : 'Ext.container.Container', 
    alias   : 'widget.country.main', 
    requires  : ['Ext.layout.container.Border', 
       'Ext.resizer.BorderSplitter'], 
    layout  : { 
     type  :'border' // does not work 
    }, 
    initComponent : function() { 
     var me = this; 
     me.items = [{ 
      region  : 'center', 
      layout  : 'fit', 
      html  : 'Center' 
     },{ 
      region  : 'east', 
      html  : 'East', 
      width  : 300, 
      split  : true, 
      collapsible : true 
     }]; 
     me.callParent(); 
    } 
}); 

我按照Why will my ExtJS tab will not show items with a border layout但没能解决我的问题。

+1

?它有尺寸吗?无论是明确的还是容器?您不能单独发布单个组件。 – 2013-02-20 00:26:45

+0

它工作正常http://jsfiddle.net/StK2Y/一个建议,从未在原型上设置对象,这里可能不是问题,但会在将来咬你。 'layout:{type:'border'},' – 2013-02-20 00:31:01

+0

为什么中心区域的布局'合适'? – Izhaki 2013-02-20 00:46:12

回答

1

问题可能是您没有给您的容器宽度/高度。这可以在配置中明确地完成,也可以通过确保父容器使用布局(而不仅仅是默认布局,它不调整任何大小)。

在这个例子中,我你的组件添加到身体,给它一个硬编码的宽度/高度http://jsfiddle.net/StK2Y/这个工程

Ext.create('WebAdmin.view.reference.CountryMain', { 
    title: 'Border Layout', 
    renderTo: Ext.getBody(), 
    width: 500, 
    height: 500  
}); 

但是,如果父容器不具有设定宽度/高度,你在哪里呈现容器边框布局将无法正常工作http://jsfiddle.net/StK2Y/1/

Ext.create('WebAdmin.view.reference.CountryMain', { 
    title: 'Border Layout', 
    renderTo: Ext.getBody() 
}); 
+0

谢谢胡安。是的,增加高度和宽度的作品。 – Nabarun 2013-02-20 01:03:13