1

在我们的应用程序中,有一个选项卡面板,我们在其中动态添加/删除面板。

通过菜单处理程序中的以下代码单击菜单项添加面板:

Ext.getCmp('mainTabPanelId').add(getPanel());

这里getPanel()方法在创建面板后返回面板。

假设主选项卡面板的 id 是mainTabPanelId,子面板的 id 是 panelId,在这种情况下,有人可以指导以下内容:

  1. add 方法后需要调用doLayout()吗?mainTabPanel
  2. 应该在l 或新添加的子面板上doLayout()调用mainTabPane,即,Ext.getCmp('mainTabId').doLayout()还是Ext.getCmp('panelId').doLayout()
  3. 是否会调用来doLayout()处理与渲染相关的所有问题,例如滚动条?
  4. 该方法getPanel()应该返回一个已经创建的面板(使用Ext.create)还是应该返回一个配置对象(拥有xtype:'panel')?牢记时间,应该首选哪一个以获得更好的性能?
4

1 回答 1

2

AbstractContainer::add()

<...> 如果 Container 配置了尺寸管理布局管理器,此时 Container 也会重新计算其内部布局。

所以你不必做1 - 3因为:

AbstractContainer::doLayout()

<...> 在大多数情况下,框架在内部使用它来刷新布局。

AbstractContainer::defaults

为了使默认值起作用,必须使用 {xtype: ......} 添加子项,而不是使用 Ext.create("widget.type",{}) © roger.spall

所以我更喜欢返回配置对象而不是组件本身。

于 2012-06-28T13:37:32.040 回答