Hi all,
I'm brand new to Roku development, trying to develop through a POC. I got to a point where I can statically present a one-row RowList with a picture and a couple of labels, but I'm completely stuck on how I would go about adding a new item to the row?
I would post code but none of my code has come even close to working so doesn't seem like there's much of a point. If there's a tutorial for this that I missed please let me know as well.
Thanks!
Ahmad
I got a tiny bit further - code below successfully creates a RowListItem but then any attempt to feed that item to the row list fails. RowListItem and RowListContent definitions come from one of the example apps but I'll include them further down as well.
item1 = createObject("RoSGNode", "RowListItem") itemContent = createObject("RoSGNode", "ContentNode") itemContent.HDPosterUrl = "http://server-ip:8000/image.png" itemContent.text = "50" itemContent.title = "Monday" item1.itemContent = itemContent rowlist = m.top.findNode("exampleRowList") content1 = CreateObject("roSGNode", "RowListContent") content1.content = item1 rowlist.content = content1
<component name = "RowListItem" extends = "Group" > <interface > <field id = "itemContent" type = "node" onChange = "showcontent"/> <field id = "focusPercent" type = "float" onChange = "showfocus"/> <field id = "rowFocusPercent" type = "float" onChange = "showrowfocus"/> </interface> <script type = "text/brightscript" > <![CDATA[ sub init() m.itemposter = m.top.findNode("itemPoster") m.itemmask = m.top.findNode("itemMask") m.itemlabel = m.top.findNode("itemLabel") m.itemlabel2 = m.top.findNode("itemLabel2") end sub sub showcontent() itemcontent = m.top.itemContent m.itemposter.uri = itemcontent.HDPosterUrl m.itemlabel2.text = itemcontent.text m.itemlabel.text = itemcontent.title end sub sub showfocus() scale = 1 + (m.top.focusPercent * 0.08) m.itemposter.scale = [scale, scale] end sub sub showrowfocus() m.itemmask.opacity = 0.75 - (m.top.rowFocusPercent * 0.75) m.itemlabel.opacity = m.top.rowFocusPercent end sub ]]> </script> <children > <Poster id = "itemPoster" translation = "[ 10, 10 ]" width = "150" height = "150" scaleRotateCenter = "[ 256.0, 144.0 ]" > <Rectangle id = "itemMask" color = "0x000000FF" opacity = "1.0" width = "150" height = "150" scaleRotateCenter = "[ 256.0, 144.0 ]"/> </Poster> <Label id = "itemLabel2" font = "font:MediumBoldSystemFont" translation = "[ 0, 200 ]" color = "0x00800080" horizAlign = "center" width = "150" opacity = "1.0"/> <Label id = "itemLabel" font = "font:MediumBoldSystemFont" translation = "[ 0, 250 ]" color = "0x00800080" horizAlign = "center" width = "150" opacity = "1.0"/> </children> </component>
Row list content:
<component name = "RowListContent" extends = "ContentNode" > <children > <ContentNode title = "Through the weekend" > <ContentNode HDPosterUrl = "http://www.sdktestinglab.com/Tutorial/images/eotextchangepg.jpg" text = "50" title = "Monday" /> <ContentNode HDPosterUrl = "http://www.sdktestinglab.com/Tutorial/images/eotextchangepg.jpg" text = "55" title = "Tuesday" /> <ContentNode HDPosterUrl = "http://www.sdktestinglab.com/Tutorial/images/eotextchangepg.jpg" text = "85" title = "Wednesday" /> <ContentNode HDPosterUrl = "http://www.sdktestinglab.com/Tutorial/images/eotextchangepg.jpg" text = "75" title = "Thursday" /> <ContentNode HDPosterUrl = "http://www.sdktestinglab.com/Tutorial/images/eotextchangepg.jpg" text = "70" title = "Friday" /> </ContentNode> </children> </component>
Log in to your Roku shell to see the debugger output. It should give some clue where the error is happening.
I haven't gotten into dynamically updating a rowlist yet but I think I've tried once and gave up. Correct me if I'm wrong but I thought you load it once and that's it, which I hate. Post your new findings.