当我在设计我的应用程序以便使用Talkback进行访问时,遇到了这个问题。
当Android打开警告对话框时,它会读出单词"alert",然后是其余的对话框内容。我没有使用警告对话框来显示警告,是否有任何方法可以确保Android直接读取对话框内容而不是读取"alert"这个单词。
另外,如果我只想显示一些从屏幕弹出并且可以通过类似于警告对话框的方式来解除的数据,并且Talkback可以很好地处理它,则是否有警告对话框的替代方案?
当我在设计我的应用程序以便使用Talkback进行访问时,遇到了这个问题。
当Android打开警告对话框时,它会读出单词"alert",然后是其余的对话框内容。我没有使用警告对话框来显示警告,是否有任何方法可以确保Android直接读取对话框内容而不是读取"alert"这个单词。
另外,如果我只想显示一些从屏幕弹出并且可以通过类似于警告对话框的方式来解除的数据,并且Talkback可以很好地处理它,则是否有警告对话框的替代方案?
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
,使用在日志记录器中记录的那个。基于这篇Google Groups帖子,您可以通过覆盖View.dispatchPopulateAccessibilityEvent方法来实现它。
例如:
@Override
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
//super.dispatchPopulateAccessibilityEvent(event);
event.setBeforeText("My custom alert title text");
event.getText().clear();
return true;
}