TimePicker
Returns a LocalTime object
Usage Example
Section titled “Usage Example”@Composablefun TimePickerExample() { var showTimePicker by remember { mutableStateOf(false) } var selectedTime by remember { mutableStateOf(LocalTime.now()) }
Column( modifier = Modifier .fillMaxSize() .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { Text( text = "Selected Time: ${selectedTime.format(DateTimeFormatter.ofPattern("HH:mm"))}", )
Spacer(modifier = Modifier.height(16.dp))
Button(onClick = { showTimePicker = true }) { Text("Pick a Time") }
if (showTimePicker) { TimePickerDialog( onDismissRequest = { showTimePicker = false }, onTimeSelected = { time -> selectedTime = time showTimePicker = false } ) } }}TimePickerDialog Component
Section titled “TimePickerDialog Component”@Composablefun TimePickerDialog( onDismissRequest: () -> Unit, onTimeSelected: (LocalTime) -> Unit) { val timePickerState = rememberTimePickerState( initialHour = LocalTime.now().hour, initialMinute = LocalTime.now().minute, is24Hour = true )
AlertDialog( onDismissRequest = onDismissRequest, confirmButton = { TextButton(onClick = { onTimeSelected(LocalTime.of(timePickerState.hour, timePickerState.minute)) }) { Text("OK") } }, dismissButton = { TextButton(onClick = onDismissRequest) { Text("Cancel") } }, text = { TimePicker(state = timePickerState) } )}Material3 Alarm Time Picker
Section titled “Material3 Alarm Time Picker”@OptIn(ExperimentalMaterial3Api::class)@Composablefun Material3AlarmTimePicker() { val timePickerState = rememberTimePickerState(initialHour = 7, initialMinute = 0, is24Hour = true) var showPicker by remember { mutableStateOf(false) }
Text("${timePickerState.hour}:${timePickerState.minute}")
FilledTonalButton(onClick = { showPicker = !showPicker }) { Text("Set Alarm Time") }
Text(text = "Alarm Time: ${timePickerState.hour}:${timePickerState.minute.toString().padStart(2, '0')}")
if (showPicker) { Dialog( onDismissRequest = { showPicker = false } ) { Column( Modifier .clip(RoundedCornerShape(20.dp)) .background(Color.White) .padding(10.dp) ) { TimePicker(state = timePickerState) FilledTonalButton(onClick = { showPicker = false }) { Text("Confirm") } } } }}