我在设计可以使用Talkback访问的应用程序时遇到了这个问题。
当android打开一个警告对话框时,它会读出“alert”字样,然后是对话框的其余部分。 我没有使用警报对话框来显示警报,有没有办法确保android直接读出对话框而不读出“警告”这个词。
此外,如果我只是想显示一些从屏幕弹出的数据,并且可以像解除警报对话框那样被解雇并且回复效果很好的话,是否有警告对话框的替代方案?
答案 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;
}