這在多個班級類型的幾個地方發生,但我現在堅持一個按鈕示例。Android - Talkback在內容描述結束時宣佈課程類型。
所以我有一個按鈕,我想對講宣佈爲「播放」。內容描述設置爲「播放」。然而,對講也是在宣佈課程,所以它讀作「播放按鈕」。
我嘗試瞭解決方案,我發現其他地方通過重載onInitializeAccessibilityNodeInfo方法
private void setupContentDescriptors() {
mPlayPauseButton.setAccessibilityDelegate(new View.AccessibilityDelegate() {
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfo info)
{
super.onInitializeAccessibilityNodeInfo(host, info);
//blanked to prevent talkback from announcing class/type
info.setClassName("");
info.setContentDescription("Play");
}
});
}
類的名稱設置爲「」完美工作,但我很快就發現了這種解決方案只是工作的API 23以上。 根據文檔「從API 23開始,在主機方法之後調用委託方法,所有屬性都要被修改而不被主機類覆蓋」。
我嘗試了其他幾種方法無濟於事。 想法?