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