到目前为止,我尝试过以下方法:
myButton.setFocusable(true);
myButton.setFocusableInTouchMode(true);
myButton.requestFocus();
requestFocus()似乎只请求输入焦点,与可访问性焦点无关。我还尝试过:
myButton.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
myButton.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
myButton.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED);
myButton.announceForAccessibility("accessibility test");
myButton.performAccessibilityAction(64, null); // Equivalent to ACTION_ACCESSIBILITY_FOCUS
AccessibilityManager manager = (AccessibilityManager) getSystemService(Context.ACCESSIBILITY_SERVICE);
if (manager.isEnabled()) {
AccessibilityEvent e = AccessibilityEvent.obtain();
e.setSource(myButton);
e.setEventType(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
e.setClassName(getClass().getName());
e.setPackageName(getPackageName());
e.getText().add("another accessibility test");
manager.sendAccessibilityEvent(e);
}
这似乎都不起作用。