Flash Builder (Flex): VScrollbar для группы данных, как прокрутить вниз по умолчанию? - PullRequest
0 голосов
/ 23 января 2010

У меня есть HGroup, которая содержит DataGroup с ArrayCollection для dataProvider.

к DataGroup присоединена VScrollBar.

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

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

я знаю, что могу выполнить следующую команду для прокрутки вниз: 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>

Ответы [ 2 ]

1 голос
/ 31 марта 2011

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

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

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

1 голос
/ 23 января 2010

Вы должны установить verticalScrollPosition. Смотрите здесь или здесь . Или попробуйте это для Spark List:

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