Dojo dijit布局ContentPane with splitter - 以编程方式更改区域方向

问题描述:

我使用两个窗格(网格和细节)作为主细节模式。 现在我正在尝试创建“右侧的详细信息”或“底部的详细信息”切换按钮。我通过更改ContentPane的区域属性来执行此操作,如下所示:Dojo dijit布局ContentPane with splitter - 以编程方式更改区域方向

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); 
     }