我想明确可访问性焦点。但就我而言,这并不容易,因为当前具有焦点的对象在范围内不可访问,所以我不能调用它 clearAccessibilityFocus()。在这一刻,我请求将焦点放在我可以访问的其他对象上,然后清除焦点,但这不是一个好的解决方案。你能帮我解决这个问题吗?
问问题
7538 次
4 回答
4
您可以使用
view.performAccessibilityAction(
AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS, null);
清除可访问性焦点。
于 2017-02-24T07:42:26.413 回答
2
我想你可以去:
myView.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED);
于 2015-04-06T06:49:12.357 回答
1
您可以在视图中调用它。
setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
我遇到了一个问题,即在添加到其他片段之上的片段上泄漏了可访问性。so onCreateView() 的第二个片段
container.getFocusedChild().setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS);
于 2016-05-20T19:22:53.303 回答
0
有两种可能的情况。如果您需要从真实视图中移除焦点,那么您可以这样做:
view.performAccessibilityAction(
AccessibilityNodeInfo.ACTION_CLEAR_ACCESSIBILITY_FOCUS,
null
)
但是,如果您需要从虚拟视图中移除焦点,那么您应该执行以下操作:
view.accessibilityNodeProvider?.performAction(
virtualViewId,
AccessibilityNodeInfoCompat.ACTION_CLEAR_ACCESSIBILITY_FOCUS,
null
)
于 2021-02-03T10:12:38.817 回答