获取兄弟控件 (Node.brother)
Node.brother
声明
brother_node = node:brother()
brother_node = node:brother(val)
brother_nodes = node:brother(val1, val2, ...)
参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| val | number | 否 | 获取第 val 个兄弟控件。默认获取所有兄弟。(1)=第1个兄弟,(1,2)=第1和第2个兄弟,(1.4)=1-4之间所有兄弟,(0.1)=下一个兄弟,(-0.1)=上一个兄弟,(-1)=倒数第1个兄弟 |
返回值
| 类型 | 说明 |
|---|---|
| Node 或 table | 结果为一个时返回控件对象,多个时返回列表 |
说明
获取当前控件的兄弟控件(同级控件)。
工作原理:
- 获取与当前控件同一父控件下的其他控件
- 支持多种灵活的参数格式,可获取单个或多个兄弟控件
参数格式详解:
- 无参数
brother()- 获取所有兄弟控件(不含自己) brother(1)- 获取第1个兄弟控件brother(-1)- 获取最后1个兄弟控件brother(0.1)- 获取下一个兄弟(当前控件后面的)brother(-0.1)- 获取上一个兄弟(当前控件前面的)brother(1, 2)- 获取第1和第2个兄弟brother(1.4)- 获取第1到第4个兄弟(范围)
适用场景:
- 在列表中从已定位的项导航到相邻项
- 获取表格中同一行的其他单元格
- 遍历同级控件
注意事项:
- 兄弟控件不包含当前控件自身
- 索引基于父控件的所有子控件计算
0.1和-0.1是相对于当前控件位置的特殊语法- 返回类型取决于结果数量:单个返回 Node,多个返回 table
待实现
该接口正在开发中。
示例
local node = require("node")
local n = node.selector():id("com.example:id/item"):find()
if n then
-- 获取 n 控件的第1个兄弟控件
local n_brother = n:brother(1)
if n_brother then
print(n_brother)
end
end
AScript 对应
# AScript (Python)
from ascript.android.node import Selector
node = Selector().id("com.aojoy.airscript:id/search_query_section").type("FrameLayout").find()
if node:
node_brother = node.brother(1)
if node_brother:
print(node_brother)