繁体   English   中英

如何删除特定视图的默认回话响应

[英]How to remove default talk back response on particular views

所以基本上我正在为我的 android 应用程序实现对讲功能。 有一个编辑文本视图供用户在那里写电话号码,然后有一个注册按钮。 如果用户没有提供任何电话号码,则注册按钮将被禁用。 当按钮被禁用时,回话应该说“注册按钮已禁用,请输入有效的手机号码。” 但是由于有默认字符串,回话最后说的是:Button Disabled。 如何删除为特定视图所说的默认字符串。

verifyButton.disable()
verifyButton.contentDescription = requireContext().getString(R.string.sign_up_button_disabled_phone_number_accessibility_label)

您可以通过将AccessibilityDelegate附加到视图来实现此目的:

ViewCompat.setAccessibilityDelegate(submitButton, object: AccessibilityDelegateCompat() {
    override fun onInitializeAccessibilityNodeInfo(
        host: View,
        info: AccessibilityNodeInfoCompat
    ) {
          super.onInitializeAccessibilityNodeInfo(host, info)
          if (!submitButton.isEnabled)
              info.stateDescription = getString(R.string.accessibility_button_not_enabled_reason) //"Please enter a phone number"
      }
})

这将在每次视图状态更改时更新,因此您无需在验证时手动执行此操作。

这将宣布:

“请输入电话号码,[按钮文本],按钮,已禁用”

因此,用户仍然会知道该按钮及其用途,以及它被禁用的原因!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM