API ReferencePainting & Animation
Transform Widget
Affine widget transforms with compositor-driven transitions.
Applies after layout; only the compositor, hit-testing, and semantics observe it. Default pivot is the child center.
| Constructor | Transform |
|---|---|
new(t, child) | Arbitrary affine + origin pivot |
translation(offset, child) | Shift |
scale(s, child) | Uniform scale |
rotation(radians, child) | Clockwise rotation |
skew(x, y, child) | Shear |
use incular::prelude::*;
fn main() {
let app = Application::new(|_cx| {
Container::builder()
.padding(EdgeInsets::all(24.0))
.alignment(Alignment::CENTER)
.child(
Column::builder()
.main_axis_size(MainAxisSize::Min)
.spacing(8.0)
.children(Vec::<Widget>::from([
Transform::translation(
Offset::new(8.0, 0.0),
Text::new("Shifted"),
).into(),
Transform::scale(
1.25,
Text::new("Scaled"),
).into(),
Transform::rotation(
0.2,
Text::new("Tilted"),
).into(),
]))
.build(),
)
.build()
.into()
})
.expect("valid application");
incular::run(app).expect("run application");
}ScaleTransition and RotationTransition keep child layout and picture caches
warm during animation. See Transform for the
affine value type.
Related: Opacity.