Android无障碍功能-如何在出现某些文字时设置无障碍功能?

问题描述 投票:0回答:1

我有一个页面,用户需要在其中输入电子邮件,然后单击底部的按钮进行确认。确认电子邮件时,屏幕上会显示ProgressDialog叠加层。当将无效的电子邮件输入到EditText中时,就像仅输入字母“ a”一样,错误消息将以TextView的形式出现在EditText下方。我正在尝试使此页面更易于访问。

我打算的方法是让TalkBack模式集中在错误文本出现时。但是,这不是很有效。相反,当取消ProgressDialog叠加层时,“话语提示”未选择屏幕上的任何内容,我注意到“确认”按钮仍处于选中状态,并且我听到应用程序再次宣布应用程序名称,就像活动将被重新创建(尽管不是)。此时向右滑动即可选择屏幕上的第一个视图。值得注意的是,未打开对讲模式时,确认按钮似乎没有保持“选定”状态,就像打开对讲模式时一样。

这是我尝试过的代码:

private fun onServerResult() {
    ...
    dismissDialogOverlay()
    if (error) {
        showError(errorMessage)
    }
}

private fun showError(msg : String?) {
    mTvEmailError.text = msg
    mTvEmailError.visibility = View.VISIBLE
    mTvEmailError.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED) //want focus now!
}

我也尝试过mTvEmailError.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED),还尝试将每个具有accessibilityEvent的对象与mTvEmailError.requestFocus()配对。没运气。

我想在对讲模式下将mTvEmailError设为选定的视图。而是在按下按钮后什么也没有选择。就像单击确认按钮后,对讲模式完全消失了一样。

android talkback android-accessibility
1个回答
0
投票
mTvEmailError.postDelayed({ mTvEmailError.requestFocus() }, 300)
© www.soinside.com 2019 - 2024. All rights reserved.