簡體   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