Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
jaxim
Level 7

Button to Listen to Focus Event?

I've created a custom component that extends the button class. I would like to listen to a Focus event within the custom component so I can tell the UI nodes to display differently when the component is in focus. I've tried to listen to the focusPercent field within component's interface like below but the eventhandler is never called.


<field id="focusPercent" type="float" onChange="itemFocusChanged"/>


How do I get this custom component/button to listen to the focus event so I can have it react to getting into and out of focus?


p.s. This is how I am setting the button into focus: button.setFocus(true)
0 Kudos
2 Replies
joetesta
Level 10

Re: Button to Listen to Focus Event?

button and Group (which button is extended from) don't have a focusPercent field, afaik.
You could do this; In your .brs script, add an observer to the button's focusedChild:

...
  m.button.observeField("focusedChild", "focusChanged")
...

sub focusChanged()
  if m.button.hasFocus()
    ' the button has focus, decorate accordingly'
  else
    ' the button lost focus, undecorate accordingly'
  end if
end sub

Actually you probably need to use "m.top" instead of "m.button" assuming this script is in the actual button brs.
aspiring
0 Kudos
jaxim
Level 7

Re: Button to Listen to Focus Event?

That worked! This seems like a bug. It seems like an oversight not to officially support a buttons onFocus event instead of having to use a workaround like this.
Thanks!

m.top.observeField("focusedChild", "onFocusChanged")
0 Kudos