<view>一个类似 HTML <div> 的 容器元素。与 <div> 类似,<view> 是一个多功能的容器元素,可以容纳其他元素,并作为构建布局的基础。所有 <view> 上可用的属性、事件和方法都可以被其他元素使用。


属性名和属性值用于描述元件的行为和外观。
name用来指定组件的名字,一般是供 native 通过 findViewByName 来从 native 侧操作对应的节点。
id用来指定组件唯一的身份标识,可供前端 API 来查找并操作对应的节 点,比如 invoke。
style用于在元件上应用行内(inline)样式。
class用于为元件指定一个或多个类名,这些类名可以在 CSS 中使用来应用样式。
className ReactLynx在 ReactLynx 中请使用 className 来设置 CSS 的类名,用法同 class。
data-*用于为元件指定额外的信息,这些信息可以在 Event 中获取。
flatten Android only只有 Android 平台可以生效,用来强制将特定的节点创建对应的 Android View。
exposure-id指定目标节点是否需要监听曝光/反曝光事件。
exposure-scene指定目标节点的曝光场景,与 exposure-id 一起用于对需要监听曝光的节点进行唯一标识。
exposure-ui-margin-*指定曝光检测中目标节点自身的边界缩放值,影响目标节点的视口交叉判断,每一个节点可以有自己的自身边界缩放值。
在使用此能力前,也需要对当前节点设置 enable-exposure-ui-margin。
exposure-screen-margin-*指定曝光检测任务中目标节点参考的屏幕边界缩放值,影响目标节点的视口交叉判断,每一个节点可以有自己的屏幕边界缩放值。
exposure-area指定目标节点可以触发曝光事件的视口交叉比例,大于该比例时触发曝光事件,小于该比例时触发反曝光事件,默认目标节点露出即触发曝光事件。
enable-exposure-ui-margin指定目标节点是否支持 exposure-ui-margin-* 属性。
设置为 true 会改变 exposure-screen-margin-* 的行为,可能导致可滚动容器的懒加载失效。
enable-exposure-ui-clip指定曝光检测任务中是否考虑父节点的视口裁剪。当设置为 true 时,父节点视口外的节点无法触发曝光,当设置为 false 时,父节点视口外的节点可以触发曝光。
accessibility-element设置节点是否支持无障碍。
accessibility-label设置节点语音播报的内容。
如果 <text/> 节点不设置该属性,则 <text/> 节点默认 accessibility-label 是 <text/> 的内容。
当一个节点开启 accessibility-element 属性后,建议同时设置 accessibility-label,这样可以更清楚地表达当前节点的含义。
accessibility-trait设置节点的类型特征。系统对不同类型的节点,播放内容会有特定的补充。
accessibility-elements自定义子节点的聚焦顺序。该属性设置在父节点上,其子节点的聚焦顺序会根据 accessibility-elements 属性指定子节点 id 的顺序进行聚焦。
如果父节点设置了 accessibility-elements 属性,那么仅可访问 accessibility-elements 属性指定 id 的子节点,其他子节点则不可以聚焦。
accessibility-elements-a11y作用等同于 accessibility-elements, 但是对应的 id 是 a11y-id。
accessibility-elements-hidden标记当前节点及其所有子节点都不会成为无障碍节点。
accessibility-exclusive-focus该属性可以被任何节点设置,在无障碍模式下,顺序导航只会聚焦到这些节点下的子节点。
使用场景:解决弹窗蒙层焦点穿透问题:可以给蒙层节点设置该属性为 true,使得焦点在蒙层节点内部循环,不会穿透到蒙层下其他节点。
a11y-id区别于 id,用于单独标识无障碍节点。
ios-platform-accessibility-id iOS only用于指定 iOS 中一个 UIView 的无障碍标识符,仅限平台层无障碍框架接入时才需使用。
user-interaction-enabled指定目标节点及其子节点是否能够响应 Lynx 的触摸事件,该属性不会影响平台层手势(比如 scroll-view 的滚动)。
native-interaction-enabled指定目标节点是否消费平台层的触摸事件,影响平台层手势(比如 scroll-view 的滚动),不影响 Lynx 的触摸事件,可以实现类似平台层手势穿透/拦截的效果。
在 Android 端,只支持在 view 元件上设置生效。
已知的双端差异:Android/HarmonyOS 端支持父子/兄弟结构的平台层手势穿透/拦截;iOS 端只支持兄弟结构的平台层手势穿透/拦截。
block-native-event指定目标节点在事件响应链上时是否阻止 Lynx 外的平台层手势,可以实现类似阻止平台层侧滑返回的效果。
block-native-event-areas指定阻止 Lynx 外平台层手势的触摸区域,当目标节点在事件响应链上并且触摸在目标节点的指定区域时,平台层手势将被阻止,可以实现类似阻止平台层侧滑返回的效果。
该二维数组内是若干个包含 4 个元素的数组,4 个元素依次为 x、y、width、height,单位为 px 或 %,表示触摸区域在目标节点中的位置和宽高。
比如 [['0px', '0px', '50%', '50%'], ['50%', '50%', '50%', '50%']] 表示触摸在节点的左上和右下区域时,Lynx 外的平台层手势会被阻止。
consume-slide-event指定阻止所有平台层滑动手势生效的角度范围,当目标节点在事件响应链上并且滑动角度在角度范围内时,所有平台层滑动手势将被阻止,但 Lynx 的触摸事件依旧生效,可以实现消费指定方向滑动的前端滚动容器,此时基于平台层手势的原生滚动会被阻止。
该二维数组是若干个包含 2 个元素的数组,2 个元素依次为 start、end,表示起始角度和结束角度,滑动角度由手指按下的位置和手指移动的位置确定。
比如 [[-180, -135], [-45, 45], [135, 180]] 表示滑动方向为横向时,所有平台层滑动手势将被阻止,但滑动方向为纵向时,平台层滑动手势可以生效。
event-through指定触摸在目标节点上时 Lynx 是否消费平台层的触摸事件,可以实现类似只展示 不交互的效果。
该属性支持继承,即子节点未设置 event-through 时,会继承父节点的 event-through 值。其生效区域受 event-through-active-regions 的影响,未设置时默认为目标节点的所有区域。
该属性设置为 true 只能保证 Lynx 不消费平台层的触摸事件,但 Lynx 的父节点可能消费触摸事件导致穿透失效。
event-through-active-regions指定 event-through 的生效区域。
该二维数组内是若干个包含 4 个元素的数组,4 个元素依次为 x、y、width、height,单位为 px 或 %,表示触摸区域在目标节点中的位置和宽高。
比如 [['0px', '0px', '50%', '50%']] 表示触摸在节点的左上区域时,Lynx 不消费平台层的触摸事件。
enable-touch-pseudo-propagation指定目标节点是否支持 :active 伪类在事件响应链上继续向上冒泡。
hit-slop指定目标节点的触摸事件响应热区,不影响平台层手势。
比如 {top: '10px', left: '10px', right: '10px', bottom: '10px'} 或 10px 表示节点的触摸热区扩大 10px。
其他更高优先级的因素可能导致热区修改失效,比如节点的视图层级(z-index、translateZ、fixed)比较高、父节点的 overflow 为 hidden 等。
ignore-focus指定触摸在目标节点上时是否不抢占焦点,默认点击在节点上时节点会抢占焦点,可以实现类似点击其他区域时键盘不收起的效果。
该属性支持继承,即子节点未设置 ignore-focus 时,会继承父节点的 ignore-focus 值。
ios-enable-simultaneous-touch iOS only指定目标节点在事件响应链上时是否强制触发 touchend 事件,可以解决部分场景下 iOS 端不触发 touchend 事件但触发 touchcancel 事件(touchmove 事件也没有连续)的问题。
__lynx_timing_flag标记并监控渲染该元件的 Lynx Pipeline。当 Lynx Pipeline 中出现 __lynx_timing_flag 变化,并且该 Lynx Pipeline 触发最终渲染时,将产生 PipelineEntry 性能事件,可通过 PerformanceObserver() 接收相关性能事件。
__lynx_timing_flag 可以设置为任意字符串:
undefined 或空字符串时,无作用。__lynx_timing_actual_fmp 时,可用于统计 ActualFmp 指标,会产生 MetricActualFmpEntry 性能指标事件和 PipelineEntry 渲染流水线性能事件。PipelineEntry 性能事件。前端可以在元件上设置事件处理器属性来监听元件的运行时行为。
touchstart属于触摸事件,手指开始接触触摸平面时触发。
touchmove属于触摸事件,手指在触摸平面上移动时触发。
touchend属于触摸事件,手指从触摸平面上离开时触发。
touchcancel属于触摸事件,触摸事件被系统或 Lynx 外部手势中断时触发。
tap属于触摸事件,手指在触摸平面上单击时触发。
该事件和 longpress 事件在事件监听上互斥,即前端同时监听两个事件,则两个事件不会同时触发,longpress 优先。
longpress属于触摸事件,手指在触摸平面上长按时触发,长按触发的间隔为 500 ms。
layoutchange属于自定义事件,目标节点排版完成时触发,返回目标节点相对于 LynxView 视口坐标系的位置信息。
uiappear属于自定义事件,目标节点在屏幕上出现时触发。
uidisappear属于自定义事件,目标节点在屏幕上消失时触发。
animationstart属于动画事件,在 Animation 动画开始时会触发。
animationend属于动画事件,在 Animation 动画结束时会触发。
animationcancel属于动画事件,在 Animation 动画取消时会触发。
animationiteration属于动画事件,在 Animation 动画每次循环执行时会触发。
transitionstart属于动画事件,在 Transition 动画开始时触发。
transitionend属于动画事件,在 Transition 动画结束时触发。
transitioncancel属于动画事件,在 Transition 动画取消时触发。
前端可以通过 SelectorQuery API 执行元件的方法。
boundingClientRect前端可以调用该方法来获取目标节点的宽高和位置信息。
takeScreenshot前端可以调用该方法来获取目标节点的 base64 图片。
该操作会占用主线程耗时,需要注意调用频率。
Android 上使用时需要在对应节点设置 flatten 为 false。
requestAccessibilityFocus前端可以调用该方法将无障碍焦点聚焦到某个无障碍元件。
LCD tables only load in the browser