Функция DatePickerDialog
Функция DatePickerDialog рисует диалог Material3
с DatePicker
внутри лямбды content.
Закрытие без выбора ловят в onDismissRequest.
Кнопки подтверждения и отмены передают
в confirmButton и dismissButton.
Состояние даты берут из
rememberDatePickerState,
итог читают из selectedDateMillis.
Синтаксис
DatePickerDialog(
onDismissRequest = { /* close */ },
confirmButton = { /* ok */ },
) {
DatePicker(state = datePickerState)
}
Параметры
| Параметр | Описание |
|---|---|
onDismissRequest |
Вызывается при закрытии диалога жестом или системной кнопкой назад. |
confirmButton |
Composable кнопки подтверждения выбора даты. |
dismissButton |
Composable кнопки отмены, может быть null.
|
content |
Тело диалога, обычно DatePicker
с параметром state.
|
Пример
Давайте откроем диалог с календарём и кнопкой OK:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.DatePicker
import androidx.compose.material3.DatePickerDialog
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.rememberDatePickerState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
class MainActivity : ComponentActivity() {
@OptIn(ExperimentalMaterial3Api::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
var open by remember { mutableStateOf(true) }
val state = rememberDatePickerState()
if (open) {
DatePickerDialog(
onDismissRequest = { open = false },
confirmButton = {
TextButton(onClick = { open = false }) {
Text("abcde")
}
},
) {
DatePicker(state = state)
}
}
}
}
}
На экране затемнённый фон и карточка с календарём,
внизу кнопка с текстом "abcde" для закрытия.
Смотрите также
-
функция
DatePicker,
которая рисует календарь без оболочки диалога -
функция
rememberDatePickerState,
которая хранит выбранную дату в selectedDateMillis -
функция
TimePicker,
которая выбирает часы и минуты -
функция
DropdownMenu,
которая показывает список во всплывающем блоке