Skip to content

Flex 布局 ​

NeoFlux 使用 Taitank(腾讯开源的 flexbox 布局引擎)计算布局。Container 暴露 flexbox 属性,直接映射到 Taitank。

基本用法 ​

cpp
auto col = std::make_shared<Container>();
col->SetFlexDirection(FlexDirection::kColumn)   // 子组件垂直排列
   .SetJustifyContent(HAlign::kCenter)          // 主轴居中
   .SetAlignItems(VAlign::kCenter)              // 交叉轴居中
   .SetPadding({.left = 16, .top = 16, .right = 16, .bottom = 16});

Flex Direction ​

值说明
kColumn垂直排列(默认)
kRow水平排列
kRowReverse水平反向排列

对齐方式 ​

  • SetJustifyContent(HAlign):主轴对齐(kLeft / kCenter / kRight / kSpaceBetween / kSpaceAround)
  • SetAlignItems(VAlign):交叉轴对齐(kTop / kCenter / kBottom / kStretch)

弹性伸缩 ​

  • Expanded:设置 flex_grow,填充剩余空间
  • SetFlexGrow(float):设置弹性增长因子
  • SetFlexShrink(float):设置弹性收缩因子

固有尺寸 ​

叶子组件(Text、Button)通过 OnMeasure() 报告固有尺寸,Taitank 布局时调用。有 measure 函数的节点不能有子节点。

下一步 ​

讨论

Released under the GPL-3.0 License.