在我的Android应用程序中,我有一个显示图像的< code >视图,并有一个关联的< code >内容描述。
我可以启用设置-
到目前为止,这一切都是意料之中的。
但是,如果我再次单击同一个<code>视图。例如,我的图像和描述可能会在其具有<code>AccessibilityFocus</code>时更新,因此说新短语对用户有帮助。我怎样才能做到这一点?
我已经尝试了View.clearFocus()
和View.invalidate()
,但没有成功。
欢迎任何建设性的想法。
更新
我还应该提到,我想从API 8开始添加支持。因此,我正在尝试使用API 4中的可访问性接口尽我所能。
我目前正在开发一个解决方案,该解决方案使用View.clearFocus()
后跟View.requestFocus()
来解决更新视图问题。到目前为止,这似乎在我的API 8和16测试套件上有效。
我将再次更新最终结果,但欢迎在此期间提出进一步建议。
正如我在问题中promise的那样,这是我的调查结果和一个可行的解决方案。
首先,非常感谢alanv的帮助和支持,以及为以后的API(14及以上)回答问题。虽然他没有找到旧API的解决方案,但他确实提供了关键信息,帮助我找到了答案。
在撰写本文时,由于TalkBack中的已知错误,无法构建成功说出的AccessibilityEvent
-有关更多详细信息,请参阅未链接到视图的发送辅助功能事件。如果事件源为空,TalkBack(v3.5.0_r105)会忽略该事件,并且由于AccessibilityEvent.setSource(View)
首次出现在API 14中,因此无法在此之前设置源-请参阅Google Eyes-Free问题#379
但是,可以使用我之前暗示的View.requestFocus()
使Android生成此类事件。
> < li>
使用以下方法使视图在其XML布局中可聚焦:
android:focusable=“true”
android:focusableInTouchMode=“true”
在Activity.onCreate
中使用View.setContentDescription(text)
或在XML布局中使用android: contentDescription="text"
设置口语文本(如果是静态的),或者在代码中动态设置(如果需要)。
当需要朗读文本时,使用< code>View.requestFocus()将焦点移到正确的视图,以触发< code>AccessibilityEvent。
为了确保一个短语是重复的(我原来的问题),在前面的步骤中请求焦点之前,调用< code>View.clearFocus()。
我在API 8上测试了这种方法的实现,它也适用于API 16。它应该可以一直追溯到API 4,当时首次引入了可访问性API。
对于只支持较新的Android API(14和更高版本)的开发人员来说,这个解决方案可能不是必需的,但是我相信对于那些支持早期API的可访问性的开发人员来说,目前几乎没有其他选择。祝你好运。
更新
不幸的是,alanv的答案似乎已经消失了 - 可能被删除了 - 带走了评论中所有相关的细节和讨论。我试图重新抓住以下要点。
>
对于Android API 14及更高版本,可以创建如下重点事件:
< code > if(maccessibilityservice . is enabled()){ AccessibilityEvent event = AccessibilityEvent . obtain(AccessibilityEvent。TYPE _ VIEW _ FOCUSED);event . set source(my view);// API 14
对于Android API 16及更高版本,可以使用< code > view . announceforaccessibility(text)。
问题内容: 我知道索引在内部是B树或类似的树结构。假设索引是为3列构建的,我希望Postgres执行以下操作: 在该B树中找到键[a = 10,b = 20,c = 30], 扫描下10个条目并返回它们。 如果索引只有一列,则解决方案显而易见: 但是,如果有更多的列,解决方案将变得更加复杂。对于2列: 3栏: 请注意查询: 是 不正确的 ,因为它将例如过滤掉[a = 11,b = 10,c = 1
可能重复: 如何录制Android设备屏幕? 我读了很多文章,但没有找到任何解决方案。我需要一个应用程序或其他内容来录制我的设备屏幕的视频。我想制作其他应用的宣传视频。任何帮助将不胜感激。谢谢。
问题内容: 用这样的HTML: 然后像这样的一些CSS: 如何允许在启用触摸的设备上进行长时间触摸来复制悬停?我可以更改标记/使用JS等,但是想不出一种简单的方法来做到这一点。 问题答案: 好的,我已经解决了!它涉及稍微更改CSS并添加一些JS。 使用jQuery使其变得容易: 用英语:当您开始或结束触摸时,请打开或关闭课程。 然后,在您的HTML中,将类悬停添加到您要与此一起使用的任何内容上。在
问题内容: 我想在内容中使用redis搜索,这样可能吗? 例如 : 我使用c#和BookSleeve,如果帖子的“已删除”属性为false,我想在帖子的“内容”属性中搜索一个单词,我可以使用HSET并序列化此对象以存储在redis或SADD或…中。 1-存储该对象的最佳方法是什么?2-搜索和筛选对象以退货的最佳方法是什么? [更新] 我可以使用SISMEMBER在redis中搜索确切的单词或短语,
需要实现收到网络推送的指令强制强制List控件内容刷新,触发item更新时调用aboutAppear,有相关的方法吗?
关于视图 Eclipse视图允许用户查看项目元数据的图形表示。 例如,项目导航器视图显示与项目关联的文件夹和文件的图形表示,属性视图显示在另一个视图或编辑器中选择的元素的图形表示。 eclipse透视图可以显示任意数量的视图和编辑器。 所有编辑器实例都显示在单个编辑器区域中,而视图则放在视图文件夹中。 工作台窗口可以显示任意数量的视图文件夹。 每个视图文件夹都可以显示一个或多个视图。 组织视图 下