我正在编写一个专门为盲人和视力受损者设计的应用程序,并且我试图覆盖TextView
特定AccessibilityEvent
被触发时的行为。屏幕布局由 4 个TextView
垂直排列的屏幕组成。我只想改变背景的颜色以反映哪个是“聚焦”的,所以在我的自定义中TextView
我有这个方法
@Override
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
System.out.println(event.toString());
if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_HOVER_ENTER ||
event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED) {
this.setBackgroundColor(mColorArray[2]);
}
if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_HOVER_EXIT ||
event.getEventType() == AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED) {
this.setBackgroundColor(mColorArray[0]);
}
return super.dispatchPopulateAccessibilityEvent(event);
}
我的问题是AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED
永远不会被解雇。其他三个在使用 ExploreByTouch 或向上/向下左右滑动时正确触发。
任何帮助将不胜感激