Layout 带拆分器的Dojo dijit布局内容窗格-以编程方式更改区域方向

Layout 带拆分器的Dojo dijit布局内容窗格-以编程方式更改区域方向,layout,dojo,splitter,contentpane,Layout,Dojo,Splitter,Contentpane,我使用两个窗格网格和细节作为主细节模式。 现在我尝试在右边创建细节,或者在底部的切换按钮上创建细节。我通过更改ContentPane的region属性来实现这一点,如下所示: function toggleDetails() { if(dijit.byId("Details").region == "right") { dijit.byId("Details").set("region", "bottom"); dojo.byId("Details").

我使用两个窗格网格和细节作为主细节模式。 现在我尝试在右边创建细节,或者在底部的切换按钮上创建细节。我通过更改ContentPane的region属性来实现这一点,如下所示:

function toggleDetails() {
     if(dijit.byId("Details").region == "right") {
        dijit.byId("Details").set("region", "bottom");
        dojo.byId("Details").style.height = "200px";
     }
     else {
         dijit.byId("Details").set("region", "right");
         dojo.byId("Details").style.width = "400px";
     }
     dijit.byId("DetailsParent").resize();
 }
窗格玻璃本身变化良好。问题是我有一个用于详细信息窗格的拆分器。切换时,拆分器对于原始方向是正常的,但对于备用方向不会正确渲染。有基于contentPane区域刷新拆分器方向的解决方案吗


我曾尝试以编程方式更改拆分器小部件的一些属性,如水平和区域,但没有任何东西真正固定替代方向。

可能的解决方案是使用removeChild和addChild,如本例中所示

        if (isVertical) {

            // vertical layout 

            this.ap_MainContainer.removeChild(this.ap_TopContainer);

            this.ap_TopContainer.region = 'top';

            this.ap_MainContainer.addChild(this.ap_TopContainer);

        } else {

            // horizontal layout

            this.ap_MainContainer.removeChild(this.ap_TopContainer);

            this.ap_TopContainer.region = 'left';

            this.ap_MainContainer.addChild(this.ap_TopContainer);
        }