[英]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.