Есть ли какой-нибудь разборный гибкий контейнер, который может обрабатывать динамическое содержимое, которое работает при предварительной разборке? - PullRequest
0 голосов
/ 02 февраля 2011

Знаете ли вы какой-нибудь складной гибкий контейнер, который может обрабатывать динамический контент, который работает при предварительной свернутости?

Я пробовал компонент CollapsiblePanel с помощью Arc90 для Flex, но он не работал при предварительной свернутости.

Если у меня внутри панели есть VBox, и я установил для свойства CollapsiblePanel «свернутый» значение true, размер CollapsiblePanel восстановить невозможно.Похоже, это то, что происходит:

  1. Свернутое свойство CollapsiblePanel предварительно установлено в true в разметке MXML.
  2. VBox автоматически настраивает свою высоту на 0, так какCollapsiblePanel свернут.
  3. Когда свернутое свойство CollapsiblePanel изменяется на 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();
}

Есть ли кто-нибудь, кому удалось сделать что-то подобное?Какой компонент вы использовали?

1 Ответ

0 голосов
/ 07 февраля 2011

Наконец-то есть решение, хотя это немного обходной путь.Я позволяю загружать все панели, а затем свернуть их программно, вместо того, чтобы предварительно свернуть их в разметке.Таким образом, их размер уже вычислен и может быть восстановлен без каких-либо проблем, когда пользователь восстанавливает их.

У кого-нибудь есть лучшее решение?

...