WheelPickerCompose icon indicating copy to clipboard operation
WheelPickerCompose copied to clipboard

WheelTextPicker: startIndex positions element askew

Open midenok opened this issue 1 year ago • 0 comments

@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:

image

After touching it with mouse it repositions it properly:

image

midenok avatar Jul 07 '23 16:07 midenok