Most visited

Recently visited

Added in API level 16

AccessibilityNodeProvider

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 List
     
     
     
      
      
       findAccessibilityNodeInfosByText(String text,
                         int virtualDescendantId) {
                     // Implementation.
                     return null;
                 }

                 public AccessibilityNodeInfo createAccessibilityNodeInfo(int virtualDescendantId) {
                     // Implementation.
                     return null;
                 }
             });
     return mAccessibilityNodeProvider;
 
     
     
     

Summary

Constants

int HOST_VIEW_ID

托管视图的虚拟ID。

Public constructors

AccessibilityNodeProvider()

Public methods

AccessibilityNodeInfo createAccessibilityNodeInfo(int virtualViewId)

返回表示虚拟视图的 AccessibilityNodeInfo ,即

List<AccessibilityNodeInfo> findAccessibilityNodeInfosByText(String text, int virtualViewId)

通过文本查找 AccessibilityNodeInfo

AccessibilityNodeInfo findFocus(int focus)

找到虚拟视图,即

boolean performAction(int virtualViewId, int action, Bundle arguments)

在虚拟视图上执行辅助功能操作,即

Inherited methods

From class java.lang.Object

Constants

HOST_VIEW_ID

Added in API level 21
int HOST_VIEW_ID

托管视图的虚拟ID。

常量值:-1(0xffffffff)

Public constructors

AccessibilityNodeProvider

Added in API level 16
AccessibilityNodeProvider ()

Public methods

createAccessibilityNodeInfo

Added in API level 16
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.

也可以看看:

findAccessibilityNodeInfosByText

Added in API level 16
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.

也可以看看:

findFocus

Added in API level 19
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.

也可以看看:

performAction

Added in API level 16
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.

也可以看看:

Hooray!