TalkBack,不说"警告"当进入警报对话框(或)替代警报对话框时

时间:2014-11-21 19:28:47

标签: android dialog accessibility alertdialog talkback

我在设计可以使用Talkback访问的应用程序时遇到了这个问题。

当android打开一个警告对话框时,它会读出“alert”字样,然后是对话框的其余部分。 我没有使用警报对话框来显示警报,有没有办法确保android直接读出对话框而不读出“警告”这个词。

此外,如果我只是想显示一些从屏幕弹出的数据,并且可以像解除警报对话框那样被解雇并且回复效果很好的话,是否有警告对话框的替代方案?

2 个答案:

答案 0 :(得分:0)

有点晚了,但是对于任何现在阅读本文的人来说,请像这样覆盖对话框的视图:

class NoAlertDialog @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0)
    : RelativeLayout(context, attrs, defStyleAttr) {

    init {
        inflate(context, R.layout.dialog, this)
    }

    override fun dispatchPopulateAccessibilityEvent(event: AccessibilityEvent?): Boolean {
        Log.e("Logging", "Event dispatched: " + event?.action)
        if (event?.action == AccessibilityEvent.CONTENT_CHANGE_TYPE_UNDEFINED) {
            return true
        }
        return super.dispatchPopulateAccessibilityEvent(event)
    }
}

如果它不起作用,请尝试比较其他AccessibilityEvent int,使用记录器中记录的那个。

答案 1 :(得分:-1)

基于this Google Groups post,您可以通过覆盖View.dispatchPopulateAccessibilityEvent方法来实现。

例如:

@Override
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
    //super.dispatchPopulateAccessibilityEvent(event);
    event.setBeforeText("My custom alert title text");
    event.getText().clear();
    return true;
}