【问题标题】:Bring Focus back to the node in roku将焦点带回 roku 中的节点
【发布时间】:2018-05-05 03:26:20
【问题描述】:

您好,我正在开发一个 SDK,当用户在应用程序中执行某些事件时,它会显示自定义视图。我已经创建了这些视图的 xml,并且能够通过场景渲染它。但是面临的一个问题是,当显示此自定义视图时,焦点会转移到视图,但当它被解除时,焦点不会返回到先前具有焦点的节点。有什么方法可以达到同样的效果吗?

【问题讨论】:

    标签: roku brightscript


    【解决方案1】:

    例如,您可以在自定义视图上设置观察者,以观察该视图是否再次可见:

    m.customview.ObserveField("visible", "onVisibleChange") 
    

    之后你需要像这样编写 onVisibleChange 函数:

    Sub onVisibleChange()
      if m.customview.visible
        m.customview.setFocus(true)
      end if
    End Sub
    

    这是解决此问题的一种可能方法。

    【讨论】:

    • 我的问题是我需要将焦点带回在显示自定义视图之前具有焦点的节点。这可能吗?
    • 您可以在您的第一个 CustomView 上创建名为 lastFocusNode 的自定义接口字符串值。然后在您打开下一个 customview 之前,将此值从 interface 设置为最后一个焦点节点的名称。之后,只需在 onVisibleChange 函数中添加 if 语句,以检查接口值并在第一个 CustomView 再次可见时对其进行操作。我没有对此进行测试,但它应该可以工作。
    【解决方案2】:

    创建一个组件来处理添加/删除/设置组件的焦点,并使其成为您拥有的任何其他视图的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 2021-10-27
      • 2014-03-14
      • 2014-10-21
      • 2019-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多