【发布时间】:2016-04-29 23:40:39
【问题描述】:
当我实现 Spinner 来创建下拉视图时,第一个元素总是显示在主视图和下拉列表中。 所以我通过覆盖 getDropdrownView() 来隐藏它。 但是在对讲中出现问题。
问题是:当我点击微调器时,它会打开下拉视图并显示“显示 2 个项目”,即使那里存在 1 个项目。我想通过提供 onclickListener 将读出的文本覆盖为“显示 1 个项目”。但是 spinner 不支持点击事件。
我尝试了 ontouchListener、onkeyListener,但没有任何东西可以覆盖文本“显示 2 个项目”。 setContentDescription 也不起作用。 我尝试了以下方法,但也没有用:
AccessibilityEvent talkBackEvent = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_CLICKED);
talkBackEvent.getText().add("showing 1 item");
mSelectSpinner.onInitializeAccessibilityEvent(talkBackEvent);
mSelectSpinner.sendAccessibilityEventUnchecked(talkBackEvent);
mSelectSpinner.onPopulateAccessibilityEvent(talkBackEvent);
请帮帮我..我们发现的关于对讲的论坛讨论非常少。
【问题讨论】:
-
听起来你的微调器实际上显示了两个项目,但是?覆盖此语音是不准确的。
-
是的..你是对的...我在微调器中有两个项目..但我将第一个项目的可见性设置为 GONE。是否可以删除微调器中的第一个项目?我认为在那种情况下微调器会正常工作......
-
这是 ListView 项目计数报告中的一个错误——它没有考虑视图可见性。您可以从您的应用程序中从技术上解决此问题,但它可能会干扰 TalkBack 的列表遍历,并且当 ListView 中的错误在未来版本中得到修复时,它会再次中断。你能在code.google.com/p/android/issues/list 提交错误吗?
标签: android accessibility talkback accessibilityservice