表示屏幕阅读器用于读取和导航 UI 的层次结构数据模型。
当屏幕阅读器开启时,必须通过 AssistiveSupport.activeHierarchy 将层次结构设置为活动状态,才能使屏幕阅读器正常工作。如果未将层次结构设置为活动状态,屏幕阅读器将无法读取和导航 UI。一旦设置了活动层次结构,如果层次结构被修改,则必须通过调用 AssistiveSupport.NotificationDispatcher.SendLayoutChanged 或 AssistiveSupport.NotificationDispatcher.SendScreenChanged(取决于更改是否仅在布局级别,还是更大的屏幕更改)来通知屏幕阅读器。层次结构中的修改包括对以下方法的调用
rootNodes | 层次结构的根节点。 |
AccessibilityHierarchy | 初始化并返回 AccessibilityHierarchy 的实例。 |
AddNode | 在此层次结构中,在给定的父节点下,创建一个并添加一个带有给定标签的新节点。如果未提供父节点,则新节点将作为层次结构中的根节点添加。 |
Clear | 将层次结构重置为空状态,删除所有节点并移除焦点。 |
ContainsNode | 返回给定节点是否存在于层次结构中。 |
GetLowestCommonAncestor | 检索层次结构中两个节点的最近公共祖先。最近公共祖先是指两个节点在层次结构中其分支的根节点路径中共享的共同节点。 |
InsertNode | 在此层次结构中,在给定的父节点下,在给定索引处创建并插入一个带有给定标签的新节点。如果未提供父节点,则新节点将作为层次结构中的根节点插入给定索引处。 |
MoveNode | 将节点移动到层次结构中的其他位置,这会导致给定节点成为层次结构中不同节点的子节点。可以提供一个可选的索引,用于指定移动节点应在子节点列表中所处的位置(从零开始)。如果未提供索引,则默认情况下,节点将添加为新父节点的最后一个子节点。根节点可以移动到层次结构中的其他位置,从而不再成为根节点。非根节点可以通过提供 null 作为新父节点来移动以成为根节点。警告:移动操作很昂贵,因为必须执行许多检查以确保层次结构的完整性。因此,此操作不应过度执行,因为它可能会影响性能。 |
RefreshNodeFrames | 刷新层次结构中所有节点的框架(即屏幕元素的位置)。 |
RemoveNode | 从层次结构中删除节点。还可以根据 removeChildren 参数的值,可选地删除给定节点下的节点。 |
TryGetNode | 尝试获取此层次结构中具有给定 ID 的节点。 |
TryGetNodeAt | 尝试检索屏幕上给定位置处的节点。 |