Skip to main content

multi_choice_segmented_button_row

Function multi_choice_segmented_button_row 

Source
pub fn multi_choice_segmented_button_row() -> MultiChoiceSegmentedButtonRowBuilder
Expand description

§multi_choice_segmented_button_row

Lay out segmented buttons for multi-selection groups.

§Usage

Use when multiple options can be active simultaneously.

§Parameters

  • modifier — modifiers applied to the row container.
  • overlap — overlap amount between adjacent segments.
  • cross_axis_alignment — cross-axis alignment for segments.
  • equal_width — whether segments should share equal width.
  • content — row content slot.

§Examples

use tessera_components::segmented_buttons::{
    SegmentedButtonDefaults, multi_choice_segmented_button_row, segmented_button,
};
use tessera_components::theme::{MaterialTheme, material_theme};
use tessera_ui::{remember, tessera};

#[tessera]
fn demo() {
    material_theme()
        .theme(|| MaterialTheme::default())
        .child(|| {
            let selected = remember(|| [true, false]);
            multi_choice_segmented_button_row().content(move |mode| {
                segmented_button().selection_mode(mode)
                    .label("Email")
                    .selected(selected.get()[0])
                    .shape(SegmentedButtonDefaults::item_shape(
                        0,
                        2,
                        SegmentedButtonDefaults::shape(),
                    ))
                    .on_click(|| {});
                segmented_button().selection_mode(mode)
                    .label("Push")
                    .selected(selected.get()[1])
                    .shape(SegmentedButtonDefaults::item_shape(
                        1,
                        2,
                        SegmentedButtonDefaults::shape(),
                    ))
                    .on_click(|| {});
            });
        });
}