JengaSegmentedControl

fun JengaSegmentedControl(selectedIndex: Int?, segments: List<String>, onSelect: (Int) -> Unit, modifier: Modifier = Modifier, shape: Shape = JengaSegmentedControlDefaults.shape, colors: JengaSegmentedControlColors = JengaSegmentedControlDefaults.colors(), isEnabled: (Int) -> Boolean = { true }, segmentShape: Shape = JengaTheme.components.segmentedControl?.segmentShape ?: shape, segmentMinHeight: Dp = JengaTheme.components.segmentedControl?.segmentMinHeight ?: JengaSegmentedControlDefaults.SegmentMinHeight, trackPadding: Dp = JengaTheme.components.segmentedControl?.trackPadding ?: JengaSegmentedControlDefaults.TrackPadding, selectedElevation: Dp = JengaTheme.components.segmentedControl?.selectedElevation ?: JengaSegmentedControlDefaults.SelectedElevation, textStyle: TextStyle = JengaSegmentedControlDefaults.textStyle, selectedTextStyle: TextStyle = textStyle.merge(JengaTheme.components.segmentedControl?.selectedTextStyle))(source)

A segmented control: a small set of mutually-exclusive options in a pill track, with the selected segment raised. A null selectedIndex shows no selection (e.g. an unanswered yes/no question).

Parameters

selectedIndex

the selected segment index, or null for none.

segments

the segment labels.

onSelect

called with the index of a tapped segment.

modifier

the Modifier for the control.

shape

the outer shape; defaults to JengaSegmentedControlDefaults.shape.

colors

the color set; defaults to JengaSegmentedControlDefaults.colors.

isEnabled

whether the segment at an index can be selected.

segmentShape

the shape of each segment; defaults to the theme's segment shape, else shape.

segmentMinHeight

the minimum segment height.

trackPadding

padding inside the track, around the segments.

selectedElevation

shadow under the selected segment.

textStyle

the segment label text style.

selectedTextStyle

the label text style of the selected segment; defaults to textStyle with the theme's JengaSegmentedControlStyle.selectedTextStyle merged on top.

Samples

JengaSegmentedControl(
    selectedIndex = 0,
    segments = listOf(
        "Day",
        "Week",
    ),
    onSelect = { },
)