UiSelector为条件器,你在获得一个UiObject/UiCollection/UiScrollable对象时都要传入这样一个UiSelector对象进去。UiSelector对象里的方法就是添加各种条件。
设置Text等于text字符串/以text字符串开始/包含text字符串
设置Content-desc的值为desc/以desc开始/包含desc
设置selected/scrollable/checked/clickable/enabled/focusable/focusable/focused属性
设置index/instance/packageName/className属性值
返回的还是UiSelector对象,传入的参数都会放在UiSelector中的变量mSelectorAttributes中,该变量为一个SparseArray数组中。
设置SELECTOR_CHILD的值
设置SELECTOR_PATTERN的值
设置SELECTOR_CONTAINER的值
设置SELECTOR_PARENT的值
复制当前UiSelector,产生一个新的UiSelector。
暂时未知(用2个已知的匹配器构建出复杂的匹配器,得到的新匹配器要同时符合传进来的2个匹配器?)
在hashMap得到以SELECTOR_CHILD为key值的Selector对象
在hashMap得到以SELECTOR_PATTERN为key值的Selector对象
在hashMap得到以SELECTOR_CONTAINER为key值的Selector对象
在hashMap得到以SELECTOR_PARENT为key值的Selector对象
得到key=9个的值,整数值。找不到的话返回0
得到key=criterion的值,找不到返回null/false/0
判断info是否符合该匹配器所匹配的控件,index匹配SELECTOR_INDEX的值
SELECTOR_INSTANCE和SELECTOR_COUNT是否相等,如果不相等就更新SELECTOR_COUNT的值
方法名为叶子,看源码意思就是是否存在子节点和父节点。
存放属性的SparseArray对象是否包含SELECTOR_CHILD/SELECTOR_PATTERN/SELECTOR_PARENT/SELECTOR_CONTAINER对象
获得SELECTOR_CHILD对象,如果没有则获得SELECTOR_PARENT对象。深度遍历直到不存在SELECTOR_CHILD或SELECTOR_PARENT.返回该对象