针对 chromebook 优化 Android 应用程序,在顶视图中进行循环焦点更改

问题描述

我正在尝试优化 Android 应用中 ChromeO 的焦点变化。我已经读过official docscodelabs。并发现可以使用 nextFocusForwardIdnextFocusLeftIdnextFocusRightId 来管理焦点更改顺序……我试图仅在一个视图中使焦点更改循环。 看看这张照片:

enter image description here

通常,当我按下 Tab 键时,我会浏览按钮菜单,然后离开并浏览覆盖层下方的其余 UI。 当我按下 Right 箭头时,我会立即离开这个菜单。 我正在尝试禁用此场景,并使焦点更改循环。因此,当底部按钮获得焦点时,我按下 TabDown,顶部按钮应该获得焦点并忽略其余 ui。

我试过这个功能

fun makeCyclicFocusChange(viewGroup: ViewGroup) {
        for (v in viewGroup.children) {
            v.nextFocusLeftId = 0
            v.nextFocusRightId = 0
        }

        viewGroup.children.first{ it.isVisible  && it.isFocusable}.nextFocusUpId =
            viewGroup.children.last{ it.isVisible && it.isFocusable }.id
        viewGroup.children.last{ it.isVisible && it.isFocusable }.nextFocusDownId =
            viewGroup.children.first{ it.isVisible && it.isFocusable }.id
        viewGroup.children.last{ it.isVisible && it.isFocusable }.nextFocusForwardId =
            viewGroup.children.first{ it.isVisible && it.isFocusable }.id
}

但它不起作用。首先,LeftRight 箭头仍然会分散注意力。此外,当我在最后一个按钮上按下 Tab 键时,焦点确实转到了第一个按钮,但下一次 Tab 按下仍会将焦点从该菜单上移开。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)