J'ai un HGroup qui contient un DataGroup avec un ArrayCollection pour un fournisseur de données.Flash Builder (flex): VScrollbar pour un DataGroup, comment faire défiler vers le bas par défaut?
Le DataGroup est associé à un VScrollBar. Comment puis-je m'assurer que lorsque de nouvelles lignes sont ajoutées à ArrayCollection, le groupe de données défile vers le bas?
cette fenêtre va être utilisée pour une application de discussion, donc quand de nouvelles lignes sont ajoutées, j'ai besoin de voir les nouvelles lignes.
je sais que je peux exécuter la commande suivante pour faire défiler vers le bas: chatScrollBar.value = chatScrollbar.maximum
mais quel événement dois-je attacher afin d'exécuter cette commande chaque fois qu'une nouvelle ligne est visible?
<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>
Malheureusement, valueCommit n'est pas exécuté à chaque fois que j'ajoute une ligne, J'ai essayé d'utiliser s: Liste au lieu de s: DataGroup mais j'ai obtenu les mêmes résultats – ufk
Essayez l'exemple que j'ai ajouté. – Thomas
VerticalLayout n'a pas maxScrollPosition – ufk