TimePickerState


A class to handle state changes in a TimePicker

import androidx.compose.foundation.layout.Box
import androidx.compose.material3.Button
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.material3.TimePicker
import androidx.compose.material3.rememberTimePickerState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope

var showTimePicker by remember { mutableStateOf(false) }
val state = rememberTimePickerState()
val formatter = remember { SimpleDateFormat("hh:mm a", Locale.getDefault()) }
val snackState = remember { SnackbarHostState() }
val snackScope = rememberCoroutineScope()

Box(propagateMinConstraints = false) {
    Button(
        modifier = Modifier.align(Alignment.Center),
        onClick = { showTimePicker = true }
    ) {
        Text("Set Time")
    }
    SnackbarHost(hostState = snackState)
}

if (showTimePicker) {
    TimePickerDialog(
        onCancel = { showTimePicker = false },
        onConfirm = {
            val cal = Calendar.getInstance()
            cal.set(Calendar.HOUR_OF_DAY, state.hour)
            cal.set(Calendar.MINUTE, state.minute)
            cal.isLenient = false
            snackScope.launch {
                snackState.showSnackbar("Entered time: ${formatter.format(cal.time)}")
            }
            showTimePicker = false
        },
    ) {
        TimePicker(state = state)
    }
}

Summary

Public companion functions

Saver<TimePickerState, *>

The default Saver implementation for TimePickerState.

Cmn

Public constructors

TimePickerState(initialHour: Int, initialMinute: Int, is24Hour: Boolean)
Cmn

Public functions

suspend Unit
Cmn

Public properties

Int
Cmn
Boolean
Cmn
Int
Cmn

Public companion functions

Saver

fun Saver(): Saver<TimePickerState, *>

The default Saver implementation for TimePickerState.

Public constructors

TimePickerState

TimePickerState(initialHour: Int, initialMinute: Int, is24Hour: Boolean)
Parameters
initialHour: Int

starting hour for this state, will be displayed in the time picker when launched Ranges from 0 to 23

initialMinute: Int

starting minute for this state, will be displayed in the time picker when launched. Ranges from 0 to 59

is24Hour: Boolean

The format for this time picker false for 12 hour format with an AM/PM toggle or true for 24 hour format without toggle.

Public functions

settle

suspend fun settle(): Unit

Public properties

hour

val hourInt

is24hour

val is24hourBoolean

minute

val minuteInt