Android TalkBack 聚焦在透明层后面

标签 android accessibility talkback

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

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

最佳答案

在 API 19+ 上,您可以设置 accessibility importance要从 TalkBack 中隐藏的层次结构的 Root View 是 NO_HIDE_DESCENDANTS .这将阻止 TalkBack 聚焦该层次结构中的任何内容,这就是我们处理抽屉导航稀松布的方式。

在以前的版本中,没有很好的方法来完成这个。但是,有一些不好的方法涉及从 Root View 的 AccessibilityNodeInfo 中手动隐藏节点,您可以在 DrawerLayout 中查看这些节点。源代码。

关于Android TalkBack 聚焦在透明层后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34140401/

相关文章:

android - Adb 找不到 Acer Iconia A500

iphone - 不使用界面生成器来构建 iPhone GUI?

css - 使用 HTML5 和/或 CSS 创建对屏幕阅读器安全的有序列表?

android - 无障碍服务无法正常工作

javascript - Android Talkback 未注册 Web 版 onFocus。如何使用 Android Talkback 操作辅助功能焦点?

html - 如何防止屏幕阅读器在不暂停的情况下阅读列表项的全部内容?

android - 创建可能不是从 Play 商店安装的应用程序

Android Window Manager 阻止系统返回键

android - 应用程序在 android 中被杀死后后台服务不工作

Android 如何在阅读列表项计数时停止包括页脚行的 TalkBack