Open hiasel opened 5 months ago
I used the following trick:
@Composable
fun CalendarPicker() {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
var changeableTime = LocalTime.now()
var change by remember {mutableStateOf(false)}
if (change){
ShowPicker(changeableTime)
} else {
ShowPicker(changeableTime)
}
Button(onClick = {
changeableTime = LocalTime.now()
change = !change
}) {
Text(text = "Set time to now")
}
}
}
@Composable
fun ShowPicker(changeableTime: LocalTime) {
WheelTimePicker(
startTime = changeableTime,
timeFormat = TimeFormat.HOUR_24,
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 ->
// Do something with snapped time
}
}
I would like to manually change the time on a button click, for instance:
Unfortunately the
WheelTimePicker
does not get recomposed whenstartTime
is mutable and changed. Should this work using the library or is this out of scope?