The roGridScreen component was introduced with the 2.7 SDK and I know at least a few of you have been experimenting with it. Now that 2.8 has been released to the public, this may be a good time to tell you about some enhancements to roGridScreen available with the new firmware and run down a few general concepts that make using roGridScreen different than using other screen types.
New in 2.8The 2.7 roGridScreen only allows portrait style poster art, similar to the Netflix grid. Starting with 2.8, roGridScreen has a SetGridStyle() function that allows you to change the aspect ratio of the posters on your grid. SetGridStyle() accepts the following parameter values:
- "flat-portrait" (default)
- "flat-landscape"
- "flat-square"
- "flat-16x9"
Also beginning with 2.8, roGridScreen supports two additional theme attributes that allow you to adjust the height of the overhang area on your grid screen. These attributes should be assigned as strings, just like other numeric theme attributes. They are:
- gridScreenOverhangHeightSD (default: "49")
- gridScreenOverhangHeightHD (default: "69")
Event HandlingThis has been mentioned before, but it's worth repeating. The 2.7 documentation for roGridScreen events is not correct. You should ignore the isListFocused() event as it never fires. In order to accomplish what you would expect isListFocused() to do, you should catch the isListItemFocused() event, whose GetIndex() function will return the index of the focused list (row) and whose GetData() function will return the index of the focused item (column).
The "Stack of Cards" paradigmBecause roGridScreen uses the video plane, trying to play video content while a roGridScreen is open in your channel can have weird results. For that reason, roGridScreen does not fit into the "stack of cards" paradigm most channels are built on. It is good practice not to open new screens from within a roGridScreen's event loop. In general terms, when the user selects an item from a roGridScreen, you should save that selection, close the roGridScreen, and then process the selection.