将Flex值动态添加到extjs中的控制器

时间:2013-03-13 09:20:31

标签: extjs extjs4 extjs4.1 extjs-mvc

我正在提供一些项目(容器),在" View"中,hbox的布局。现在我想通过" Controller"为每个项目赋予flex值。我怎么能这样做?

我浏览过文档,但无法找到setFlex之类的任何方法。

编辑

Ext.apply(Ext.getCmp('IdHere'), {flex: 1});

我从link得到了答案。 但现在的问题是,即使我动态更改flex值,容器的视图也不会改变。它保持不变。

我最初没有在" View"中分配弹性值。如上所述here

2 个答案:

答案 0 :(得分:3)

我的第一个猜测是需要通过调用doLayout()重新运行布局过程我不太确定,但我认为你必须调用包含hbox布局的父元素。

答案 1 :(得分:1)

获取您的父容器(已应用布局hbox或vbox)然后获取项目并最终更改flex并更新布局

var ct = me.up('#parentComponent');
 ct.items.get('itemId1').flex = 2;
 ct.items.get('itemId2').flex = 2;
 ct.updateLayout();