【问题标题】:Android TalkBack focuses behind a transparent layerAndroid TalkBack 专注于透明层
【发布时间】:2015-12-07 18:15:33
【问题描述】:

我的应用中有一个透明视图,位于几个片段之上。因此,我的片段位于透明覆盖层下方,但在打开覆盖层时用户无法访问它们,因为触摸覆盖层将关闭它。在我启用 TalkBack 时一切正常

我的问题是,当我启用 TalkBack 并滑动以选择下一个元素时,一旦 TalkBack 完成了叠加层中的所有内容,它将开始将焦点设置在叠加层下方的项目上。有没有办法阻止它这样做?类似于android:clickable="true" 或使用 onClick 侦听器使透明叠加层拦截所有点击?

【问题讨论】:

    标签: android accessibility talkback


    【解决方案1】:

    在 API 19+ 上,您可以将要对 TalkBack 隐藏的层次结构的根视图的 accessibility importance 设置为 NO_HIDE_DESCENDANTS。这将阻止 TalkBack 关注该层次结构中的任何内容,这就是我们处理导航抽屉稀松布的方式。

    在以前的版本中,没有实现此目的的好方法。不过,有一些不好的方法涉及从根视图的 AccessibilityNodeInfo 中手动隐藏节点,您可以在DrawerLayout 源代码中查看这些方法。

    【讨论】:

    • alanv,你是明星!!!我不知道 NO_HIDE_DESCENDANTS 标志。只是为了增加您的答案,在 API 19 以下可以使用ViewCompat.setImportantForAccessibility(view, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
    • 但是,在 API
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多