<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 是否消费平台层的触摸事件,可以实现类似只展示不交互的效果。