1

我目前有一个ListView,该列表中的每个元素都至少包含两个TextView。我为我的应用程序添加了辅助功能,因此每当我关注某个列表元素时,它都会读出每个TextView中的文本。在辅助功能模式下,我想替代TextView的TalkBack

现在,我发送了一个TalkBack事件,但在它完成之后,它再次读出TextView。我希望它只能完成TalkBack事件,而不是其他任何事情。

任何人都有线索如何做到这一点?

在此先感谢!

+0

你能否提供相关的代码? – Vinay

回答

2

当然,只是覆盖View.dispatchPopulateAccessibilityEvent

从DOC(重点煤矿):

典型的实现将呼吁这一观点onPopulateAccessibilityEvent(AccessibilityEvent),然后调用dispatchPopulateAccessibilityEvent(AccessibilityEvent)上的每个孩子。 如果需要事件文本内容的自定义填充,则覆盖此方法。


在该方法中,您可以通过以下方式添加到事件中任何你想要的文字:

public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { 
    event.getText().add("Hey look!"); 
    return true; 
}