android xml talkback,如何在Android上修改可点击的View的TalkBack使用提示?

是的,这绝对是可能的!

覆盖onInitializeAccessibilityNodeInfo方法

如果您有自定义视图,则可以覆盖onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)方法并添加带有ACTION_CLICK ID的操作,以覆盖标签:

@Override

public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {

super.onInitializeAccessibilityNodeInfo(info);

info.addAction(

new AccessibilityNodeInfo.AccessibilityAction(

AccessibilityNodeInfo.ACTION_CLICK,

"play video"

)

);

}

如果该View有一个点击监听器,那么通过添加这个新的Action,你将覆盖默认标签,以便TalkBack会说“Double tap to”.

这仅适用于API 21 – 如果您想要在较低API版本上工作或想要在非自定义视图上设置自定义使用提示,该怎么办?您可以使用ViewCompat和AccessibilityDelegateCompat!

改为使用AccessibilityDelegate

它非常相似 – 您可以覆盖扩展的自定义AccessibilityDelegate中的等效方法:

public static class PlayVideoAccessibilityDelegate extends AccessibilityDelegateCompat {

@Override

public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {

super.onInitializeAccessibilityNodeInfo(host, info);

info.addAction(

new AccessibilityNodeInfoCompat.AccessibilityActionCompat(

AccessibilityNodeInfoCompat.ACTION_CLICK,

"play video"

)

);

}

}

然后使用它,使用ViewCompat设置委托:

ViewCompat.setAccessibilityDelegate(playButton, new PlayVideoAccessibilityDelegate());

使用accessibilitools

Novoda有一个实用程序库,可以帮助Android上的辅助功能.这包括一些帮助设置使用提示的工具:

UsageHintsAccessibilityDelegate delegate = new UsageHintsAccessibilityDelegate(resources);

delegate.setClickLabel("play video");

ViewCompat.setAccesibilityDelegate(playButton, delegate);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值