原生视图嵌入 LynxView
LynxView 本身就是一个客户端视图,轻易的可以作为全屏大小的视图使用,也可以被嵌入一个 非全屏的客户端视图中。
LynxView 对应是 Page 元件,只允许客户端对 LynxView 设置大小限制,你一般不能直接修改 Page 的样式来设置其大小。
客户端可以给 LynxView 设置不同的大小约束,也就是给 Page 设置大小约束,Lynx 排版引擎使用这些约束来计算 Page 节点以及所有子节点的大小位置信息。
约束 LynxView 的大小
约束模式
iOS 上需要再创建 LynxView 时,主动设置 LynxView 的大小约束。
有两个方式来给 Lynxview 设置大小约束:
- 通过
updateViewportWithPreferredLayoutWidth并配合setLayoutWidthMode、setLayoutHeightMode来设置固定或者弹性大小 - 通过
lynxviewbuilder#frame来设置固定大小
支持的约束模式:
-
LynxViewSizeModeUndefinedLynxView 的宽或高完全由其 Page 的内容决定,父容器不给任何约束。
-
LynxViewSizeModeExactLynxView 的宽或高为指定的固定值,即 Page 节点的大小固定。
-
LynxViewSizeModeMaxLynxView 的宽或高的最大值,即 Page 节点大小的最大值。
LynxView 为固定大小
使用 LynxViewBuilder#frame 属性
可以在创建 LynxView 的时候,设置 frame 属性大小,这样 LynxView 的大小就是固定的。
比如,你想限制 LynxView 的大小为固定的 400*200,可以按照如下方式:
使用 preferredLayoutWidth/preferredLayoutHeight 和 layoutWidthMode/layoutHeightMode
参考如下代码:
LynxView 根据内容自适应
如果你想让 LynxView 根据其内容自适应大小,可以不设置 LynxViewBuilder#frame,或通过 setLayoutWidth/HeightMode 设置 LynxViewSizeModeUndefined 或 LynxViewSizeModeMax 即可。