Tive a debruçar-me sobre o problema .... e descobri isto que é muito nice
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:local="*" xmlns:controls="com.adobe.flex.extras.controls.*" creationComplete="handleCreationComplete()"> <mx:Script> <![CDATA[ import mx.events.CollectionEvent; import mx.collections.ArrayCollection; [Bindable] private var myData:ArrayCollection = new ArrayCollection(); private function handleCreationComplete():void{ for(var i:int = 1; i < 50; i++){ var t:Object = new Object(); t="option " + i myData.addItem(t); } } private function handleCC():void{ testel.scrollToIndex(myData.length); } private function handleBt():void{ for(var i:int = 50; i < 100; i++){ var t:Object = new Object(); t="option " + i myData.addItem(t); } myData.refresh(); } ]]> </mx:Script> <mx:List id="testel" dataProvider="{myData}" updateComplete="handleCC()"> </mx:List> <mx:Button click="handleBt()" label="click" /> </mx:Application> ainda tens uma flag Boolean chamada updateCompletePendingFlag informa se um componente já passou pelas 3 fases do layout validation.. segundo os docs :) 2010/2/19 Nuno Fernandes <[email protected]> > Epa posso ter entendido mal, tu queres que a lista faça um scroll > automatico ou que se pocisione no fim? > > 2010/2/19 João Saleiro <[email protected]> > > Nuno, >> >> a ideia é fazer Scroll do List, e só o posso fazer depois do List ter >> terminado o seu processo de actualização de UI - que acontece depois do >> collectionChange. >> Uma das soluções propostas é escutar o collectionChange, marcar uma flag a >> true que indica que os dados mudaram, e no updateComplete do List ver se >> essa flag esta a true. Em caso afirmativo, deve ser colocada a false, e ser >> aplicado o scroll. ...Mas cheira-me demasiado a hack.... >> >> JS >> >> >> On 19-02-2010 15:02, Nuno Fernandes wrote: >> >> João assim de cabeça, se o myData for um Arraycollection podes adicionar >> um eventListener CollectionChange e depois na função que faz o handler só >> tens que dizer a List que o seu selected index é igual ao lenght (talvez >> lenght -1) do myData >> >> >> 2010/2/18 João Saleiro <[email protected]> >> >>> Boas, >>> >>> preciso de fazer scroll para o final de um <s:List quando o dataProvider >>> do mesmo muda (quando é atribuido, ou quando os seus valores são alterados). >>> Obviamente, só posso fazer scroll depois do List ser redesenhado, e criado o >>> scroller, portanto preciso do evento certo para o momento certo. O >>> dataProvider é atribuído por Binding: >>> >>> <s:List dataProvider="{myData}"/> >>> >>> Sugestões? >>> >>> >>> -- >>> João Saleiro >>> Chief Technology Officer >>> Tlm 1: +351 916 077 097 Skype: joao.saleiro Tlm 2: +351 968 >>> 203 370 Email/MSN: [email protected] www.webfuel.pt >>> -- >>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da >>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos >>> Grupos do Google. >>> Para publicar uma mensagem neste grupo, envie um e-mail para >>> [email protected]. >>> Para anular a inscrição neste grupo, envie um e-mail para >>> [email protected]<riapt%[email protected]> >>> . >>> Para ver mais opções, visite este grupo em >>> http://groups.google.com/group/riapt?hl=pt-PT. >>> >> >> -- >> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da >> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos >> Grupos do Google. >> Para publicar uma mensagem neste grupo, envie um e-mail para >> [email protected]. >> Para anular a inscrição neste grupo, envie um e-mail para >> [email protected]. >> Para ver mais opções, visite este grupo em >> http://groups.google.com/group/riapt?hl=pt-PT. >> >> -- >> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da >> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos >> Grupos do Google. >> Para publicar uma mensagem neste grupo, envie um e-mail para >> [email protected]. >> Para anular a inscrição neste grupo, envie um e-mail para >> [email protected] <riapt%[email protected]> >> . >> Para ver mais opções, visite este grupo em >> http://groups.google.com/group/riapt?hl=pt-PT. >> > > -- Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google. Para publicar uma mensagem neste grupo, envie um e-mail para [email protected]. Para anular a inscrição neste grupo, envie um e-mail para [email protected]. Para ver mais opções, visite este grupo em http://groups.google.com/group/riapt?hl=pt-PT.
<<image/gif>>
<<image/gif>>
<<image/gif>>
<<image/gif>>
<<image/gif>>
<<image/gif>>
