WheelPickerCompose
WheelPickerCompose copied to clipboard
WheelTextPicker: startIndex positions element askew
@Composable
fun WheelPicker()
{
// FIXME: meaningless mutable state for output only?
var snappedDT:LocalDateTime by remember { mutableStateOf(LocalDateTime.MIN) }
var snappedD:LocalDate by remember { mutableStateOf(LocalDate.MIN) }
var snappedT:LocalTime by remember { mutableStateOf(LocalTime.MIN) }
Column {
WheelDateTimePicker(
startDateTime = LocalDateTime.of(
2025, 10, 20, 5, 30
),
minDateTime = LocalDateTime.now(),
maxDateTime = LocalDateTime.of(
2025, 10, 20, 5, 30
),
timeFormat = TimeFormat.AM_PM,
size = DpSize(200.dp, 100.dp),
rowCount = 5,
textStyle = MaterialTheme.typography.titleSmall,
textColor = Color(0xFFffc300),
selectorProperties = WheelPickerDefaults.selectorProperties(
enabled = true,
shape = RoundedCornerShape(0.dp),
color = Color(0xFFf1faee).copy(alpha = 0.2f),
border = BorderStroke(2.dp, Color(0xFFf1faee))
)
) { snappedDateTime -> snappedDT = snappedDateTime }
WheelDateTimePicker { snappedDateTime -> snappedDT = snappedDateTime}
WheelDatePicker { snappedDate -> snappedD = snappedDate }
WheelTimePicker { snappedTime -> snappedT = snappedTime }
WheelTimePicker(timeFormat = TimeFormat.AM_PM) { snappedTime -> snappedT = snappedTime }
WheelTextPicker(texts = (0..99).toList().map { it.toString() }, rowCount = 5, startIndex = 21)
}
}
It positions the element like that:
After touching it with mouse it repositions it properly: