Skip to content

Bind M3 Expressive newcomers: SplitButton, ButtonGroup, LoadingIndicator #54

@jonathanpeppers

Description

@jonathanpeppers

The Material 3 Expressive update (M3 1.4+) added a handful of new shape-driven components that aren't wrapped yet. Lower priority than the core button/FAB gaps, but worth tracking together.

Missing composables

Composable Kt class
SplitButtonLayout (+ leading/trailing button slots) SplitButtonKt, SplitButtonDefaults
ButtonGroup ButtonGroupKt
LoadingIndicator (containerless) LoadingIndicatorKt
ContainedLoadingIndicator LoadingIndicatorKt

Notes

  • SplitButtonLayout is a multi-slot composable (leading button + trailing dropdown button) — model with named slot properties on the facade type, like AlertDialog.
  • ButtonGroup exposes a ButtonGroupScope receiver for children with per-item weight modifiers — same scope-receiver pattern as the segmented button rows. Can probably ship without the scope helpers first.
  • LoadingIndicator is the new wavy/morphing indicator that replaces CircularProgressIndicator in M3 Expressive contexts. ContainedLoadingIndicator is the "with surface background" variant.
  • Verify these APIs are present in the version of Xamarin.AndroidX.Compose.Material3 we're pinned to before starting; if they're newer than 1.4.0.x we may need a NuGet bump first.

Tracking

Long-term dotnet/java-interop#1440.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions