Android 回话,而不是说;“警惕”;转到警报对话框(或)警报对话框的替代选项时
我在设计使用Talkback访问的应用程序时遇到了这个问题 当android打开一个警报对话框时,它会读出“警报”一词,然后是对话框的其余部分。 我没有使用警报对话框来显示警报,有没有办法确保android直接读取对话框而不读取“警报”一词 另外,如果我只想显示屏幕上弹出的一些数据,并且可以像关闭警报对话框一样关闭这些数据,并且可以使用对讲功能,那么有没有替代警报对话框的方法呢?基于,您只需覆盖该方法即可 例如:Android 回话,而不是说;“警惕”;转到警报对话框(或)警报对话框的替代选项时,android,dialog,accessibility,android-alertdialog,talkback,Android,Dialog,Accessibility,Android Alertdialog,Talkback,我在设计使用Talkback访问的应用程序时遇到了这个问题 当android打开一个警报对话框时,它会读出“警报”一词,然后是对话框的其余部分。 我没有使用警报对话框来显示警报,有没有办法确保android直接读取对话框而不读取“警报”一词 另外,如果我只想显示屏幕上弹出的一些数据,并且可以像关闭警报对话框一样关闭这些数据,并且可以使用对讲功能,那么有没有替代警报对话框的方法呢?基于,您只需覆盖该方法即可 例如: @Override public boolean dispatchPopulate
@Override
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
//super.dispatchPopulateAccessibilityEvent(event);
event.setBeforeText("My custom alert title text");
event.getText().clear();
return true;
}
有点晚了,但是对于现在阅读本文的任何人来说,请如下覆盖对话框的视图:
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)
}
}
如果它不起作用,请尝试比较不同的
可访问性事件
int
,使用记录程序中记录的事件。您正在测试哪个版本的对讲?我正在nexus 5上测试它,运行最新版本的对讲,3.5.2.@JehoshaphAkshay你找到过这个问题的解决方案吗?@user1064249不,我没有:(我应该在哪个视图上设置它?),所以你可以在任何视图中覆盖它。你可以看看如何做。