Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
krh5150
Visitor

Styles for Grid List Question

Can I specify a specific style for a specific row or is it only based on the type of media displayed (movie, series, episode) when using the mixed style?
0 Kudos
8 REPLIES 8
RokuRobB
Streaming Star

Re: Styles for Grid List Question

There is an undocumented grid screen API called SetListPosterStyles that you can use for this purpose, for example:

listStyles = ["landscape", "portrait", "landscape"]
screen.SetListPosterStyles(listStyles)

I will make a point to update the docs to include this function.
0 Kudos
dustinhood
Visitor

Re: Styles for Grid List Question

Can someone elaborate on this?

I need 4 rows, the first 3 need to be portrait and the 4th needs to be landscape. I've tried the using the code below with no luck. Any suggestions?
BTW, I also have the ContentType of each item set to movie on the first 3 rows and episode on the 4th.


listStyles = ["landscape","portrait", "portrait", "portrait"]
screen.SetGridStyle("mixed-aspect-ratio")
screen.SetListPosterStyles(listStyles)
0 Kudos
TheEndless
Channel Surfer

Re: Styles for Grid List Question

"dustinhood" wrote:
Can someone elaborate on this?

I need 4 rows, the first 3 need to be portrait and the 4th needs to be landscape. I've tried the using the code below with no luck. Any suggestions?
BTW, I also have the ContentType of each item set to movie on the first 3 rows and episode on the 4th.


listStyles = ["landscape","portrait", "portrait", "portrait"]
screen.SetGridStyle("mixed-aspect-ratio")
screen.SetListPosterStyles(listStyles)

I believe you need to call SetupLists prior to calling SetListPosterStyles.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
dustinhood
Visitor

Re: Styles for Grid List Question

"TheEndless" wrote:
"dustinhood" wrote:
Can someone elaborate on this?

I need 4 rows, the first 3 need to be portrait and the 4th needs to be landscape. I've tried the using the code below with no luck. Any suggestions?
BTW, I also have the ContentType of each item set to movie on the first 3 rows and episode on the 4th.


listStyles = ["landscape","portrait", "portrait", "portrait"]
screen.SetGridStyle("mixed-aspect-ratio")
screen.SetListPosterStyles(listStyles)

I believe you need to call SetupLists prior to calling SetListPosterStyles.


You are correct, putting screen.SetListPosterStyles() after screen.setupLists() did the trick! Thanks TheEndless!!!!

So here it is again for those that are having trouble:


screen.setupLists(categoryList.count())
screen.SetListNames(categoryList)

listStyles = ["landscape","portrait", "portrait", "portrait"]

screen.SetGridStyle("mixed-aspect-ratio")
screen.SetListPosterStyles(listStyles)
0 Kudos
j_saterfiel
Visitor

Re: Styles for Grid List Question

I've tried to make this undocumented grid functionality work without avail.

I tried to use this functionality with the same code for the grid screen but nothing seems to affect it:


Sub Main()
port = CreateObject("roMessagePort")
grid = CreateObject("roGridScreen")
grid.SetMessagePort(port)
rowTitles = CreateObject("roArray", 4, true)
for j = 0 to 3
rowTitles.Push("[Row Title " + j.toStr() + " ] ")
end for
grid.SetupLists(rowTitles.Count())
grid.SetListNames(rowTitles)
listStyles = ["landscape","portrait", "portrait", "portrait"]

grid.SetGridStyle("mixed-aspect-ratio")
grid.SetListPosterStyles(listStyles)

for j = 0 to 3
list = CreateObject("roArray", 10, true)
for i = 0 to 10
o = CreateObject("roAssociativeArray")
o.ContentType = "episode"
o.Title = "[Title" + i.toStr() + "]"
o.ShortDescriptionLine1 = "[ShortDescriptionLine1]"
o.ShortDescriptionLine2 = "[ShortDescriptionLine2]"
o.Description = ""
o.Description = "[Description] "
o.Rating = "NR"
o.StarRating = "75"
o.ReleaseDate = "[<mm/dd/yyyy]"
o.Length = 5400
o.Actors = []
o.Actors.Push("[Actor1]")
o.Actors.Push("[Actor2]")
o.Actors.Push("[Actor3]")
o.Director = "[Director]"
list.Push(o)
end for
grid.SetContentList(j, list)
end for
grid.Show()
while true
msg = wait(0, port)
if type(msg) = "roGridScreenEvent" then
if msg.isScreenClosed() then
return
else if msg.isListItemFocused()
print "Focused msg: ";msg.GetMessage();"row: ";msg.GetIndex();
print " col: ";msg.GetData()
else if msg.isListItemSelected()
print "Selected msg: ";msg.GetMessage();"row: ";msg.GetIndex();
print " col: ";msg.GetData()
endif
endif
end while
end Sub
0 Kudos
TheEndless
Channel Surfer

Re: Styles for Grid List Question

Try calling SetGridStyle before calling SetupLists, SetListNames, and SetListPosterStyles.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
j_saterfiel
Visitor

Re: Styles for Grid List Question

Excellent that fixed the issue thanks 😄
0 Kudos
MatroxRT
Visitor

Re: Styles for Grid List Question

Looks like ifGridScreen.SetListPosterStyles is no longer undocumented. 🙂
0 Kudos