启用对讲并点击我的应用中的某个元素视图后,公告正在背诵:
我包含的说明,暂停,然后它背诵:"双击激活" 。
我在这里找到的示例中使用了Accessibility委托: https://stackoverflow.com/a/39480983/5544859
但它只替换了我的最后一个字而不是整个句子。
例如,它说:Bla Bla bla。 (暂停),然后双击"自定义字符串"
我想替换整个句子。
答案 0 :(得分:1)
此短语来自TalkBack,无法通过设计进行配置。 TalkBack正试图在所有应用中提供一致的用户体验。
答案 1 :(得分:-2)
选中此项:https://stackoverflow.com/a/39480983/2042341
将其粘贴到此处: 在API 21+中,您可以通过在View的AccessibilityNodeInfo上设置自定义操作来自定义操作名称。有两种方法:1)设置AccessibilityDelegate并覆盖onInitializeAccessibilityNodeInfo委托方法或2)扩展视图的类并覆盖onInitializeAccessibilityNodeInfo。
无论哪种方式,您将构建一个新的AccessibilityAction并使用AccessibilityNodeInfo.addAction在节点上设置它。
如果您选择使用委托,则应为点击操作设置自定义说明,如下所示:
view.setAccessibilityDelegate(new AccessibilityDelegate() {
@Override
public void onInitializeAccessibilityNodeInfo(
View v, AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(v, info);
// A custom action description. For example, you could use "pause"
// to have TalkBack speak "double-tap to pause."
CharSequence description = getResources().getText(R.string.my_click_desc);
AccessibilityAction customClick = new AccessibilityAction(AccessibilityAction.ACTION_ACTION_CLICK, description);
info.addAction(customClick);
}
});
如果您的应用程序针对API< 21,替换相应的* Compat支持库方法。该功能未向后移植,因此您无法获得有关API的自定义说明< 21,但您可以避免在应用程序代码中进行显式版本检查。