I'm using the HorizontalList (HList) component and I've run into an issue where
when data is updated dynamically some items are not rendered.
I load data via an XML file which sets up in my app several XMLListCollection
variables. Users can select different menu options to determine which
collection is used as the dataProvider for the HList. These collections range
in length from 3 - 50 items. My HList only displays 5 at any given time (with
a horizontal scroll bar).
What will happen occassionally is when I go from a short list (3 items) to a
larger list, items will not render.
The new item at position HList.dataProvider[old list length - 1] (zero based
index) will be missing. Not as though I have invalid data so it renders wrong
but, as though the data is not there at all. It puts spacing in there to
account for it but, it's the equivalent of setting an object's visible property
to false but includeInLayout to true. The other 4 in the first 5 will render
properly. I scroll the list to show more, HList.dataProvider[old list length +
1] and HList.dataProvider[old list length + 2] will not render. As I scroll
away from the beginning of the list more and more of the 5 items to display
won't render until it throws an error from all 5 not rendering. However, if I
go from a short list, of say 3 items, to a list of 4 items, then a list of 5
items, the probably is avoided across all collections. It will occur if I go
from a list of length < 5 directly to a list of lenght > 5. Also of note, if
the list length < 10, I can avoid throwing errors, however, if it gets beyond
that, it starts throwing them.
I am setting a filter on the HList.dataProvider saying if (of all products) the
product matches one of the two that need to be ignored, filter them from the
list. So irregardless of which collection is the dataProvider, if product A or
product B is in this list, filter it out. I am also using an itemRenderer (a
custom component to display an image).
Anyone have any ideas, it's been driving me nuts for a while now. Sometimes it
doesn't even happen at all and I've yet to be able to consistantly reproduce it
with anything. I'm sort of at a loss for what to do since, I don't really know
what's causing the issue... ??