我有一个基于 GoldenLayout (1.5.9) 的应用程序。布局是一个包含两列的行。请参阅下面我感兴趣的列的配置。
let config = {
content: [
{
type: "row",
content: [
{
type: "column",
width: 31,
content: [
{
type: "stack",
isClosable: false,
content: [...]
},
{
type: "component",
height: 30,
title: "Filters",
componentName: "templateComponent"
}
]
},
...
]
}
]
}
现在我希望能够关闭或隐藏组件并使其重新出现,按下工具栏按钮(即以编程方式)。我做了各种不成功的尝试:
如果我使用 x 按钮关闭组件,父列会神奇地消失,因此组件父级(保存在某处)上的后续 addChild 会将组件添加为堆栈的子级。不是我想要的。
如果我隐藏了 component.element,组件就会消失,但会留下一个洞。也就是说,堆栈不会调整大小。
我在组件上的任何地方都找不到文档化的 hide() 方法,即使我将它包装在行、列或堆栈中也是如此。
如果我手动将 Stack 和 Component 之间的分隔符向下移动,我会得到我想要的(也就是说,几乎所有的高度都给 Stack)但是 setSize(?, ?) 的组合似乎没有以编程方式做同样的事情。
任何想法?谢谢!
更新: 如果我将组件包装到另一个堆栈中,容器列不会消失,因此我可以将其添加回来:
{
type: "stack",
height: 30,
id: "filtersFrame",
isClosable: true,
content: [
{
type: "component",
title: "Filters",
componentName: "templateComponent",
componentState: { template: "filter-template" }
}
]
}
只是高度被忽略(新堆栈的高度始终为 50%)并且淘汰赛模板在那里,但它没有通过淘汰赛运行。但这是另一个问题。