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; 
}