Android TalkBack 聚焦在透明层后面

Android TalkBack focuses behind a transparent layer

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

之前一切正常

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

在API 19+,可以设置accessibility importance of root view of the hierarchy that you want to hide from TalkBack to be NO_HIDE_DESCENDANTS。这将防止 TalkBack 聚焦该层次结构中的任何内容,这就是我们处理导航抽屉稀松布的方式。

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