Wheel Picker
A controlled single-column wheel picker with separate live and settled selection callbacks.
Update selectedItem synchronously from onSelectedItemChange. The callback runs while a user scroll, item click, or semantics action moves a new item into the center. onSelectionSettled runs once after an interaction that changed the centered item stops. App-driven selectedItem changes synchronize the wheel without invoking either callback.
WheelPicker does not own or save arbitrary T values. Keep the selected value in app state; when T is not saveable, persist a stable saveable key and map it back to an item before composition.
To react only to settled selections - for example when a change triggers a query or rebuilds a dependent column - leave onSelectedItemChange empty and handle onSelectionSettled instead.
Parameters
The immutable list of unique items to display.
The controlled item currently selected by the app. It must exist in items.
Called whenever user interaction moves a different item into the center. Update selectedItem from this callback.
The modifier to be applied to the wheel picker.
Whether user scroll, click, and semantics selection actions are enabled.
Visible item text and optional accessibility value descriptions.
Visual and layout styling for the wheel picker.
Accessibility label and custom action labels for the wheel picker.
Whether the picker should loop infinitely.
Called once when an interaction that changed the centered item settles. App-driven selectedItem synchronization does not invoke it.
Optional custom content composable for rendering each item.