1 个不稳定版本

0.1.0 2024 年 8 月 21 日

#210GUI

MIT 许可证

12KB
232

MIT Latest Version docs Chat on Miaou

一个小巧的实用工具,用于计算在 "子元素" 之间的尺寸分配。

典型用例:决定在 UI 中显示哪些列,以及给每个列分配多少大小。

每个子元素都可以有一个最小和最大大小,可以是可选的并具有优先级,有 grow 因子。

示例

use flex_grow::{Child, Container};

let container = Container::builder_in(50)
    .with_margin_between(1)
    .with(Child::new("name").clamp(5, 10))
    .with(Child::new("price").with_size(8).optional_with_priority(7))
    .with(Child::new("quantity").with_size(8).optional())
    .with(Child::new("total").with_size(8))
    .with(Child::new("comments").with_min(10).with_grow(2.0))
    .with(Child::new("vendor").with_size(60).optional_with_priority(9))
    .build()
    .unwrap();
assert_eq!(container.sizes(), vec![7, 8, 8, 8, 15, 0]);

你可以给 Child::new 传递任何参数,它将被存储在子元素中并由 content() 方法返回。

无运行时依赖