我目前有一个ListView,该列表的每个元素至少包含两个TextView。我正在为我的应用添加辅助功能,所以每当我专注于某个列表元素时,它会读出每个TextView中的文本。
现在,我正在向它发送一个TalkBack事件,但在它完成后,它会再次读出TextView。我希望它只能完成我的TalkBack活动,而不是别的。
任何人都知道如何做到这一点?
提前致谢!
答案 0 :(得分:2)
当然,只需覆盖View.dispatchPopulateAccessibilityEvent。
来自doc(强调我的):
典型的实现将在此视图上调用onPopulateAccessibilityEvent(AccessibilityEvent),然后在每个子节点上调用dispatchPopulateAccessibilityEvent(AccessibilityEvent)。 如果需要自定义事件文本内容,则覆盖此方法。
在该方法中,您可以按以下方式添加所需的任何文本:
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
event.getText().add("Hey look!");
return true;
}