CarouselTileSchema
Renders a Material 3 horizontal carousel over tiles, one child per carousel item. type picks the composable:
CarouselTypeSchema.MultiBrowse →
HorizontalMultiBrowseCarousel, where CarouselTypeSchema.MultiBrowse.preferredItemWidth sets the target item width and CarouselTypeSchema.MultiBrowse.minSmallItemWidth / CarouselTypeSchema.MultiBrowse.maxSmallItemWidth bound the shrunken edge items (falling back toCarouselDefaultswhennull).CarouselTypeSchema.Uncontained →
HorizontalUncontainedCarouselwith a fixed CarouselTypeSchema.Uncontained.itemWidth.
itemSpacing and contentPadding are interpreted as dp — the padding is applied horizontally only — and userScrollEnabled toggles manual swiping.
Item control: the tile listens to the screen broadcast channel and reacts to scroll-to-begin, scroll-to-end, next-item and previous-item commands addressed to its id, each optionally animated. It shares the pager's broadcast, so the same scroll event drives both tiles — just point it at this carousel's id. The resulting item is clamped to the valid range, so asking for the next item on the last one (or the previous on the first) is a no-op.
Triggers dispatched:
OnDisplayEventTrigger— fired once when the tile enters composition (keyed by tile id).OnPageChangedEventTrigger— fired whenever the current item changes (the initial item is skipped). The trigger is dispatched once per direction the new item matches, and each dispatch only reaches the events wired to that exact direction:Direction.Anyalways,Direction.Startwhen landing on the first item,Direction.Endwhen landing on the last item, andDirection.Index(item)for the new index.
Notes: children are rendered by index without a scope CompositionLocal.