布局接口(Layout)
脚本化布局(Layout)可像 节点(Node) 一样工作, 但同时还能够适配通过 resize 提供的布局盒。 它也可以具有内在尺寸:通过 measure 函数报告期望尺寸,允许宿主布局尝试适配其大小。
更多信息请参阅 布局脚本(Layout Scripts)。
方法(Methods)
measure
measure(self: T) -> Vector
当提供此方法时,此布局可以具有内在尺寸/请求特定大小。这并非保证,因为布局可能有最小/最大尺寸限制。在测量后,会以授予的尺寸调用 resize。
-- 在 resize 时测量布局的计算尺寸
function measure(self: MyLayout): Vector
return Vector.xy(100, 100)
end
resize
resize(self: T, size: Vector, scale: number) -> ()
若提供此方法,则在初始设置尺寸时调用,并在尺寸变化时再次调用。不响应布局盒的布局可以省略它;未实现时运行时直接 no-op。
-- 当布局根据内容调整大小时调用
-- 这仅适用于适应类型为 Hug 的布局
-- scale 是呈现表面的每点设备像素数(device pixels per point)。
function resize(self: MyLayout, size: Vector, scale: number)
print('Resize:', size, scale)
end