Hi there, I'm in the process of rewriting my app to utilise the Scene Graph framework and it's going quite well, but I've encountered and issue today that I can't figure out a way around!
I'm using a RowList to display 21 rows with columns varying from 50 items to 4000, this was fine in the old roGridScreen as I'd just load 10 items from each row and set the others to invalid, then when I got near those items I'd load the information and replace the item. Trying to use the same principal with the RowList is where I'm encountering an issue, every time I update a blank item it jumps straight back to the first item in the row, I've tried using jumpToRowItem but it does nothing in this case. Also when I update the node using SetFields all the items in the row flicker, if I update 10 at a time it'll flicker for each then jump back to the first item... Sort of ruins the aesthetic as well as not being functional! Am I doing something wrong here or can I use an alternative method for this?
An interesting dilemma. The way scenegraph works is it redraws everything within the current update group. It appears to use a back buffer and front buffer just like roScreen did and when it swaps the buffers it causes the flicker. You can minimize the problem by breaking each row into separate components but that makes it more complicated to manage. The end result is - the less area it needs to redraw the less pronounced the process will be. What you could do is append an item to the end of each row of content for 'More' - and then when the user selects that load another 50 items and replace the row content. That would make the change to the first item in the current list make sense - and perhaps prepend a "Previous" menu option before the beginning of the new content.
Another thing to consider, if you have 21 rows, and each row has 4000 items, how would your users be able to locate what they want? Even with 10 displayed items on the screen at once, do you think the end user will appreciate being forced to hit fast forward or rewind on their remote a maximum of 200 times (10 times to get to row item #200, and times that by 10 to get to row item #2000, to select a video? What kind of user experience are you making them suffer through to do that? Even if you are only loading 10 things at a time that just sounds like a bad way of doing it when you could use sub-categories and secondary screens or a search feature and better organization to save valuable time. For each of your 21 rows that is still excessive.