选择器
无障碍选择器用于选取当前界面上的无障碍节点,其原理是设置若干条件,当节点满足所有设定条件时,就会被选中。实际应用中可能存在多个节点符合条件,此时选择器会返回所有满足条件的节点。同时,也可通过不同方法及参数指定返回节点的数量,例如 findOne
方法只会查找一个节点,只要存在符合条件的节点就返回该节点,即便有多个节点满足条件也是如此;而find
方法则可通过参数指定返回节点的数量。
选择器的条件种类多样,包括节点的文本内容、是否被选中、是否可点击等节点属性,即依据这些属性来筛选节点。此外,还能设置父节点选择器、子节点选择器和兄弟节点选择器。
选择器条件主要分为四类:
字符串类
整数类
布尔类
无障碍选择器
前三种类型均是根据节点属性判断节点是否符合给定条件,例如文本内容是什么或包含什么等。若基于节点属性设置的条件有多个节点满足,想要筛选出所需节点,就需要使用第四种类型——无障碍选择器类型。
若为父节点设置选择器,那么只有当节点自身属性满足选择器条件,且其父节点属性也满足父节点选择器条件时,该节点才会被返回。同理,为子节点、兄弟节点设置选择器后,只有节点自身属性满足选择器条件,且子节点、兄弟节点属性分别满足对应选择器条件时,该节点才会被返回。更复杂的情况是,为父节点的父节点、子节点的子节点等设置选择器,这时需要所有相关节点都满足各自对应的选择器条件,目标节点才会被返回。节点详细信息界面可查看所有支持的选择器属性。

accessibilityFocused
根据视图的辅助功能焦点状态进行过滤。
bounds
根据视图的边界(Rect)进行过滤。
checkable
根据视图是否可检查进行过滤。
checked
根据视图的选中状态进行过滤。
childCount
根据视图的子节点数量进行过滤。
className
根据视图的类名进行过滤。
clickable
根据视图的可点击状态进行过滤。
columnCount
根据视图所在列的总数量进行过滤。
columnIndex
根据视图所在列的索引进行过滤。
columnSpan
根据视图跨越的列数进行过滤。
contextClickable
根据视图的上下文可点击状态进行过滤。
depth
根据视图的层级深度进行过滤。
desc
根据视图的描述(description)进行过滤。
dismissable
根据视图是否可取消进行过滤。
drawingOrder
根据视图的绘制顺序进行过滤。
editable
根据视图是否可编辑进行过滤。
enabled
根据视图是否可用进行过滤。
focusable
根据视图是否可聚焦进行过滤。
focused
根据视图当前的聚焦状态进行过滤。
id
根据视图的id进行过滤。
important
根据视图的重要性标志进行过滤。
index
根据视图在父视图中的索引进行过滤。
longClickable
根据视图的可长点击状态进行过滤。
multiLine
根据视图是否支持多行文本显示进行过滤。
packageName
根据视图所在包名进行过滤。
rowCount
根据视图所在行的总数量进行过滤。
rowIndex
根据视图所在行的索引进行过滤。
rowSpan
根据视图跨越的行数进行过滤。
scrollable
根据视图是否支持滚动进行过滤。
selected
根据视图是否被选中进行过滤。
text
根据视图的文本内容进行过滤。
visible
根据视图的可见性进行过滤。
brother
为兄弟节点设置选择器。
child
为子节点设置选择器。
parent
为父节点设置选择器。