【问题标题】:Is there any collapsible flex container that can handle dynamic content that works when pre-collapsed?是否有任何可折叠的 flex 容器可以处理预折叠时有效的动态内容?
【发布时间】:2011-06-19 22:24:06
【问题描述】:

您知道任何可以处理预折叠时工作的动态内容的可折叠 flex 容器吗?

我尝试了 Arc90 for Flex 的 CollapsiblePanel 组件,但它在预折叠时不起作用。

如果我在面板中有一个 VBox,并且我将 CollapsiblePanel 的“collapsed”属性设置为 true,则无法恢复 CollapsiblePanel 的大小。似乎这就是正在发生的事情:

  1. CollapsiblePanel 的折叠属性在 MXML 标记中预设为 true。
  2. 由于 CollapsiblePanel 已折叠,VBox 会自动将其高度调整为 0。
  3. 当 CollapsiblePanel 的 collapsed 属性更改为 false(即由用户展开)时,VBox 不会自行展开,因为它的父级内容区域为 0。
  4. 因此,CollapsiblePanel 保持相同的高度,因为其内容的高度为 0。
  5. 因此...

注意:只有在 CollapsiblePanel 预先折叠时才会发生这种情况,如下面的标记所示。

我已经试过了(没用):

    <containers:CollapsiblePanel minimize="pnl_minimize(event)" 
restore="pnl_restore(event)" height="100%" width="100%" collapsed="true">
    <mx:VBox width="100%" height="100%" verticalGap="0">
       <mx:LinkButton id="lnkSales1" label="Sales 1" />
       <mx:LinkButton id="lnkSales2" label="Sales 2" />
    </mx:VBox>
    </containers:CollapsiblePanel>

 private function pnl_restore(event:Event):void
{
    var objPanel:CollapsiblePanel = event.target as CollapsiblePanel;
    var objChildArray:Array = objPanel.getChildren();
    for each (var obj:Object in objChildArray)
    {
       obj.invalidateSize();
    }
    objPanel.invalidateSize();
}

有没有人成功地做到了这样的事情?你用的是什么组件?

【问题讨论】:

  • 这段代码似乎对我有用。也尝试给 CollapsiblePanel 和 VBox 一个高度尺寸。比如 height="100%" 这样就可以恢复到那个大小
  • @[Ian T] 我添加了 height="100%" 但没有任何效果。加载模块时是否还预先折叠 MXML 中的 CollapsiblePanel?

标签: apache-flex actionscript resize


【解决方案1】:

终于找到了一个解决方案,虽然它有点变通方法。我允许加载所有面板,然后以编程方式折叠它们,而不是在标记中预先折叠它们。这样,它们的大小就已经计算过了,并且可以在用户恢复它们时毫无问题地恢复。

谁有更好的解决方案?

【讨论】:

    猜你喜欢
    • 2014-03-26
    • 2015-10-23
    • 1970-01-01
    • 2012-12-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多