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