1 个不稳定版本
新 0.1.0 | 2024 年 8 月 21 日 |
---|
#210 在 GUI
12KB
232 行
一个小巧的实用工具,用于计算在 "子元素" 之间的尺寸分配。
典型用例:决定在 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()
方法返回。