import { UniElement } from './index' /** * UniNativeViewElement */ export interface UniNativeViewElement extends UniElement { /** * 设置组件需要重新触发测量排版 */ setDirty(): void /** * 设置测量回调,多次调用会覆盖之前设置的测量回调 * @param callback 测量回调方法 * 注意:此回调方法运行在子线程中,需处理线程安全问题 */ setMeasureCallback(callback: UniNativeMeasureCallback): void } /** * 测量回调方法 * @param - res */ type UniNativeMeasureCallback = (res: UniNativeMeasureSpecification) => UniNativeMeasureSize /** * 测量约束对象 */ interface UniNativeMeasureSpecification { /** * 宽度约束值 * 不同平台单位存在差异: * - Android平台为物理像素 * - iOS/鸿蒙平台为逻辑像素 */ width: number, /** * 宽度约束模式 */ widthMode: UniNativeMeasureMode, /** * 高度约束值 * 不同平台单位存在差异: * - Android平台为物理像素 * - iOS/鸿蒙平台为逻辑像素 */ height: number, /** * 高度约束模式 */ heightMode: UniNativeMeasureMode, } type UniNativeMeasureSize = UniLayoutSize /** * 测量约束模式 */ export enum UniNativeMeasureMode { /** * 父元素对测量的子元素无任何限制,子元素可以是它想要的任意大小 */ Undefined, /** * 父元素对测量的子元素确定了一个精确的尺寸,子元素必须使用这个尺寸 */ Exactly, /** * 父元素对测量的子元素限定的最大尺寸,子元素不能超过此尺寸 */ AtMost, }