2010-01-23 4 views
0

У меня есть группа HGroup, которая содержит DataGroup с ArrayCollection для dataProvider.flash builder (flex): VScrollbar для DataGroup, как прокрутить вниз по умолчанию?

В DataGroup подключен VScrollBar.

Как я могу убедиться, что всякий раз, когда в ArrayCollection добавляются новые строки, группа данных будет прокручиваться вниз?

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

я знаю, что я могу выполнить следующую команду, чтобы прокрутить вниз: chatScrollBar.value = chatScrollbar.maximum

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

<s:HGroup width="100%"> 
<s:DataGroup id="vertView" 
    clipAndEnableScrolling="true" width="100%" height="60" 
    dataProvider="{chatMessages}"> 

    <s:itemRenderer> 
    <fx:Component> 
    <s:ItemRenderer width="100%" height="8"> 
    <s:states> 
     <s:State name="normal" /> 
     <s:State name="hovered" /> 
    </s:states> 

    <s:RichText text="{ data }" textAlign="left" paddingLeft="2" color="black" color.hovered="blue"/> 
    </s:ItemRenderer> 
    </fx:Component> 
    </s:itemRenderer> 

    <s:layout> 
    <s:VerticalLayout useVirtualLayout="true"/> 
    </s:layout> 
</s:DataGroup> 
<s:VScrollBar id="chatScrollBar" viewport="{vertView}" 
     height="{vertView.height}" /> 

</s:HGroup> 

ответ

1

Необходимо установить значение verticalScrollPosition. См. here или here. Или попробовать это для списка Спарк:

<s:List id="list" 
      horizontalCenter="0" 
      verticalCenter="0"> 
     <s:layout> 
      <s:VerticalLayout id="vLayout" requestedRowCount="4" 
        verticalScrollPosition="{vLayout.maxScrollPosition}" /> 
     </s:layout> 
</s:list> 
+0

К сожалению valueCommit не выполняется, когда я добавляю строку, Я попытался использовать s: Список вместо s: DataGroup, но я получил те же результаты – ufk

+0

Попробуйте пример, который я добавил. – Thomas

+0

VerticalLayout не имеет maxScrollPosition – ufk

1

Попробуйте использовать Scroller, я думаю, что это так просто, как:

<s:Scroller > 
    <s:HGroup> 
    ... 
    </s:HGroup> 
</s:Scroller> 

Вам не нужно, чтобы подключить свой собственный скроллбар.

 Смежные вопросы

  • Нет связанных вопросов^_^