【发布时间】:2013-11-08 21:29:09
【问题描述】:
我正在为应用添加辅助功能,并且我正在使用 google 的对讲来测试辅助功能,但我无法阻止某些视图被选中。
除了删除所有侦听器和可聚焦性之外,还有什么更好的方法可以在视图隐藏在屏幕上时禁用它们获得焦点......即打开“抽屉”并禁用内容容器中的项目选择?似乎应该有一个更清洁的解决方案,或者可能需要在对讲团队方面进行修复。
谢谢
【问题讨论】:
-
您要永久禁用对讲通知吗?
-
您可以为 View 设置
importantForAccessibility="2"以让Talkback忽略它。但是视图仍然是可聚焦/可点击的。由于DrawerLayout是View类的后代,importantForAccessibility属性应该适用于它。请参阅 View 类的文档以了解此属性可以采用的可能值:Link。不过,关于您要达到的目标,您的问题还不是很清楚。 -
感谢您的回复。您的解决方案仅适用于 API 级别 >= 16,但是在 API 级别 16 之前的 android 中一直存在对讲。这个问题怎么不清楚?当我的应用程序处于某些状态以获取某些视图时,我只想禁用对讲“公告”。除了我的抽屉示例...另一个示例是当某些视图设置为不可见时,它们仍将被“宣布”,我想在不改变可见性的情况下防止这种情况消失。
-
不可见的观点被宣布是奇怪的。您可以尝试另一种方法:使用
AccessibilityDelegate(也可用于支持 v4 - AccessibilityDelegateCompat)。创建一个 AD 对象并覆盖onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info)。如果 View('host') 可见,则调用 super 方法。将此对象用作yourView.setAccessibilityDelegate(ad_object)的参数。看看有没有帮助。 -
感谢用户!您的建议与 ViewCompat 相结合解决了我的问题。如果您想发布一个答案让我接受,那就太好了!
标签: android accessibility talkback