zstack

Function zstack 

Source
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?
examples/zstack.rs (lines 4-7)
3fn main() {
4    rui(zstack((
5        "This is a test.",
6        circle().color(RED_HIGHLIGHT).padding(Auto),
7    )));
8}
More examples
Hide additional 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}