useVirtualLayout=false does not perform very well for lists over 800. I ended up modifying your focusIn handler to this:-
if (event.shiftKey) theList.ensureIndexIsVisible(itemIndex-1) else theList.ensureIndexIsVisible(itemIndex+1); Thanks for your help. @Alex, do you know if there is a ticket number for this issue? On Thu, Sep 17, 2015 at 7:35 PM, Marcus Fritze <marcus.fri...@googlemail.com > wrote: > Thanks Alex for the suggestion useVirtualLayout=false . I didn’t know that > (or I have forgotten this). :-) > > So I added this to the list and removed the +1 on itemIndex. > > Chris, be sure you use the correct tabIndex for the TextInput. I changed > this from data to itemIndex. > I used data in the old example, because you had numbers in the example. > But itemIndex is better, > so your data can be A,B,C,…. > > This should work now. > > Updated code: > > <?xml version="1.0" encoding="utf-8"?> > <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" > xmlns:s="library://ns.adobe.com/flex/spark" > xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" > creationComplete="creationCompleteHandler(event)"> > <fx:Declarations> > <!-- Platzieren Sie nichtvisuelle Elemente (z. B. Dienste, Wertobjekte) > hier --> > </fx:Declarations> > > > <fx:Script> > <![CDATA[ > import mx.collections.ArrayList; > import mx.events.FlexEvent; > > > [Bindable] > private var values:ArrayList = new ArrayList(); > > > private function creationCompleteHandler(event:FlexEvent):void > { > for (var i:int = 0; i < 100; i++) > values.addItem(String(i)); > } > ]]> > </fx:Script> > > > <s:VGroup height="100%"> > <s:Button label="Top of List" tabIndex="1"/> > <s:List id="editList" dataProvider="{values}" height="100%" > hasFocusableChildren="true" useVirtualLayout="false"> > <s:itemRenderer> > <fx:Component> > <s:ItemRenderer> > <fx:Script> > <![CDATA[ > import spark.components.List; > > > private function onFocusIn(event:FocusEvent):void > { > var list:List = this.owner as List; > > > list.ensureIndexIsVisible(itemIndex); > } > > > ]]> > </fx:Script> > <s:HGroup paddingLeft="4" verticalAlign="middle"> > <s:Label text="{data}" width="30"/> > <s:TextInput text="{data}" tabEnabled="true" focusIn="{onFocusIn(event)}" > tabIndex="{itemIndex+2}"/> > </s:HGroup> > </s:ItemRenderer> > </fx:Component> > </s:itemRenderer> > </s:List> > <s:Button label="Bottom of List" tabIndex="{values.length + 2}"/> > </s:VGroup> > > > </s:Application> > > > > > Am 17.09.2015 um 01:43 schrieb Chris Velevitch <chris.velevi...@gmail.com > >: > > Marcus's solution does work with my demonstration code, but when I tried to > apply it to my production code, I'm still seeing the problem. So I need to > look into why and how my production code (it uses states to switch item > renderers and some other differences) differs from my demonstration code. > > Alex, I will keep your suggestions in mind in case I can't work it out. > > Is there a ticket open for updating the Spark List with those Spark > DataGrid code? > > On Thu, Sep 17, 2015 at 12:47 AM, Alex Harui <aha...@adobe.com> wrote: > > If you look at Spark DataGrid, there is a whole bunch of code added to > handle this. I believe this code was never applied to Spark List. Can you > use a single-column DataGrid instead? And if not, can you use a List with > useVirtualLayout=false? > > -Alex > > From: Chris Velevitch <chris.velevi...@gmail.com<mailto: > chris.velevi...@gmail.com>> > Reply-To: "dev@flex.apache.org<mailto:dev@flex.apache.org > <dev@flex.apache.org>>" < > dev@flex.apache.org<mailto:dev@flex.apache.org <dev@flex.apache.org>>> > Date: Tuesday, September 15, 2015 at 11:10 PM > To: "dev@flex.apache.org<mailto:dev@flex.apache.org <dev@flex.apache.org>>" > <dev@flex.apache.org > <mailto:dev@flex.apache.org <dev@flex.apache.org>>> > Subject: Lists with focusable children problem > > I have a spark List with hasFocusableChildren is true and a custom > renderer that has a TextInput field. I set focus to a row and then start > tabbing through the list, when it gets to the last visible row, the next > tab causes focus to leave the List. How do I get the list to scroll into > view the next row? The same thing also happens when shift-tabbing backup > the list and the very first row is not currently visible. > > Attached is some code that demonstrates the problem. > > > Chris > -- > Chris Velevitch > Manager - Adobe Developers & Designers, Sydney > m: 0415 469 095 > > Adobe Developers & Designers, Sydney > Topic: Lucee > Date: Mon, 28th September > Details and RSVP on > http://www.meetup.com/Adobe-developers-designers-sydney/ > > > > > -- > > > Chris > -- > Chris Velevitch > Manager - Adobe Developers & Designers, Sydney > m: 0415 469 095 > > Adobe Developers & Designers, Sydney > Topic: Lucee > Date: Mon, 28th September > Details and RSVP on > http://www.meetup.com/Adobe-developers-designers-sydney/ > > > -- Chris -- Chris Velevitch Manager - Adobe Developers & Designers, Sydney m: 0415 469 095 Adobe Developers & Designers, Sydney Topic: Lucee Date: Mon, 28th September Details and RSVP on http://www.meetup.com/Adobe-developers-designers-sydney/