pub fn zstack<VT: ViewTuple + 'static>(children: VT) -> impl View
Expand description
Stack of up to 128 overlaid Views in a tuple. Each item can be a different view type.
Examples found in repository?
More examples
examples/calc.rs (lines 7-13)
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
fn digit_button(title: &str, state: StateHandle<String>) -> impl View {
let t = String::from(title);
zstack((
rectangle()
.corner_radius(10.0)
.color(RED_HIGHLIGHT)
.tap(move |cx| cx[state].push_str(&t)),
text(title).color(BLACK).offset([10.0, 10.0]),
))
.padding(Auto)
}
fn calc_button(title: &str, callback: impl Fn(&mut Context) + 'static) -> impl View {
zstack((
rectangle()
.corner_radius(10.0)
.color(GREEN_HIGHLIGHT)
.tap(callback),
text(title).color(BLACK).offset([10.0, 10.0]),
))
.padding(Auto)
}
examples/key_mods.rs (lines 5-11)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
fn main() {
rui(hstack((
zstack((
circle()
.color(RED_HIGHLIGHT.alpha(0.8))
.tap(|cx| println!("tapped circle, key modifiers state: {:?}", cx.key_mods))
.padding(Auto),
"Tap (inside circle)",
)),
zstack((
rectangle()
.corner_radius(5.0)
.color(AZURE_HIGHLIGHT_BACKGROUND)
.drag(|cx, delta, _state, _mouse_button| {
println!(
"dragging: {:?}, key modifiers state: {:?}",
delta, cx.key_mods
)
})
.padding(Auto),
"Drag (inside rectangle)".padding(Auto),
)),
"Handle key pressed"
.key(|cx, key| println!("key: {:?}, key modifiers state: {:?}", key, cx.key_mods))
.padding(Auto),
)));
}