2012-06-06 4 views
0

Я создаю одно приложение. В том, что есть одно всплывающее окно, в котором я использовал одну VGroup в одном скроллере.Скроллер не показан Flex 4 с VGroup

Я динамически добавляю свои пользовательские компоненты в VGroup и удаляю все компоненты при закрытии всплывающего окна и сохраняет эти компоненты в пуле памяти.

На первом этапе я открываю всплывающее окно с числами компонентов с помощью этой полосы прокрутки. Затем я закрываю всплывающее окно.

На втором этапе я открываю один и тот же всплывающий экземпляр с меньшим количеством компонентов, поэтому полоса прокрутки не появляется и закрывает всплывающее окно.

И теперь, когда я открываю всплывающее окно с большим количеством компонентов, снова не отображается прокрутка. Поэтому, когда всплывающее окно открывается с меньшим количеством компонентов, полоса прокрутки исчезает.

Pls помочь мне ...

Вот полный код:

<s:Scroller id="myScroller" 
     width="100%" 
     height="210" 
     horizontalScrollPolicy="off"> 
    <s:VGroup id="myContainer" 
     width="100%" 
     height="210" /> 
</s:Scroller> 

код для добавления компонентов:

for each(var object:MyObject in _arr) 
{ 
    var newView:MyCustomView = MyCustomViewPool.acquire(); 
    myContainer.addElementAt(newView, 0); 
    newView.myData = object; 
} 

Вот код для удаления компонентов:

for(var i:int = 0; i < myContainer.numElements; i++) 
{ 
    var newViewElement:IVisualElement = myContainer.getElementAt(i); 
    var myViewComponent:MyCustomView = newViewElement as MyCustomView; 
    MyCustomViewPool.release(myViewComponent); 

} 
myContainer.removeAllElements(); 

ответ

0

Я думаю, вам не нужно устанавливать высоту на VGroup. Просто удалите задание.

+0

Это верно: поскольку Scroller и VGroup имеют ровно 210 пикселей, VGroup не больше, чем Scroller, следовательно, нет полос прокрутки. – RIAstar

+0

Я удалил высоту VGroup, но это не сработало ... –

+0

А также с той высотой VGroup она работает нормально, когда в первый раз при создании всплывающего окна ... –