public abstract class AccessibilityNodeProvider
extends Object
java.lang.Object | |
↳ | android.view.accessibility.AccessibilityNodeProvider |
这个类是客户应该实现的契约,以支持以给定视图为根基的虚拟视图层次结构,以实现可访问性。 虚拟视图层次结构是一个假想视图树,当AccessibilityService
探索窗口内容时,它被视为视图层次结构的一部分。 由于虚拟视图树不存在,因此该类负责管理描述该树的可访问性服务的AccessibilityNodeInfo
。
这些API的主要用例是启用一个自定义视图,该视图可以绘制复杂的内容(例如月度日历网格),以呈现为逻辑节点树,例如每个月包含事件的月份,从而传达其逻辑结构。
一个典型的用例是覆盖作为虚拟View层次结构的根的View的getAccessibilityNodeProvider()
,以返回此类的一个实例。 在这种情况下,这个实例负责管理AccessibilityNodeInfo
描述以视图为根的虚拟子树,包括代表视图本身的虚拟子树。 同样,返回的实例负责在任何虚拟视图或根视图本身上执行辅助功能操作。 例如:
getAccessibilityNodeProvider( if (mAccessibilityNodeProvider == null) { mAccessibilityNodeProvider = new AccessibilityNodeProvider() { public boolean performAction(int action, int virtualDescendantId) { // Implementation. return false; } public ListfindAccessibilityNodeInfosByText(String text, int virtualDescendantId) { // Implementation. return null; } public AccessibilityNodeInfo createAccessibilityNodeInfo(int virtualDescendantId) { // Implementation. return null; } }); return mAccessibilityNodeProvider;
Constants |
|
---|---|
int |
HOST_VIEW_ID 托管视图的虚拟ID。 |
Public constructors |
|
---|---|
AccessibilityNodeProvider() |
Public methods |
|
---|---|
AccessibilityNodeInfo |
createAccessibilityNodeInfo(int virtualViewId) 返回表示虚拟视图的 |
List<AccessibilityNodeInfo> |
findAccessibilityNodeInfosByText(String text, int virtualViewId) 通过文本查找 |
AccessibilityNodeInfo |
findFocus(int focus) 找到虚拟视图,即 |
boolean |
performAction(int virtualViewId, int action, Bundle arguments) 在虚拟视图上执行辅助功能操作,即 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
AccessibilityNodeInfo createAccessibilityNodeInfo (int virtualViewId)
返回一个 AccessibilityNodeInfo
代表的虚拟视图,即主机查看的后裔,与给定 virtualViewId
或主机查看自身是否 virtualViewId
等于 HOST_VIEW_ID
。
虚拟后代是一个假想的视图,作为可见性层次结构的一部分进行报告,以实现可访问性。 这使得绘制复杂内容的自定义视图能够将它们自己报告为虚拟视图树,从而传达其逻辑结构。
实现者负责从可重用实例池中获取可访问节点信息,并在返回之前设置节点信息的所需属性。
Parameters | |
---|---|
virtualViewId |
int : A client defined virtual view id. |
Returns | |
---|---|
AccessibilityNodeInfo |
A populated AccessibilityNodeInfo for a virtual descendant or the host View. |
List<AccessibilityNodeInfo> findAccessibilityNodeInfosByText (String text, int virtualViewId)
通过文本查找AccessibilityNodeInfo
。 这场比赛是不区分大小写的遏制。 搜索是相对于虚拟视图,即主机视图的后代,其中给定virtualViewId
或主机视图本身virtualViewId
等于HOST_VIEW_ID
。
Parameters | |
---|---|
text |
String : The searched text. |
virtualViewId |
int : A client defined virtual view id which defined the root of the tree in which to perform the search. |
Returns | |
---|---|
List<AccessibilityNodeInfo> |
A list of node info. |
AccessibilityNodeInfo findFocus (int focus)
找到具有指定焦点类型的虚拟视图,即主机视图的后代。
Parameters | |
---|---|
focus |
int : The focus to find. One of FOCUS_INPUT or FOCUS_ACCESSIBILITY . |
Returns | |
---|---|
AccessibilityNodeInfo |
The node info of the focused view or null. |
也可以看看:
boolean performAction (int virtualViewId, int action, Bundle arguments)
如果 virtualViewId
等于 HOST_VIEW_ID
,则在给定 virtualViewId
或主机查看自身的虚拟视图(即主机视图的后代)上执行辅助功能操作。
Parameters | |
---|---|
virtualViewId |
int : A client defined virtual view id. |
action |
int : The action to perform. |
arguments |
Bundle : Optional action arguments. |
Returns | |
---|---|
boolean |
True if the action was performed. |