DatePickerFutureOnlySample
@Composable
fun DatePickerFutureOnlySample() {
val currentDate = LocalDate.now()
var showDatePicker by remember { mutableStateOf(true) }
var datePickerDate by remember { mutableStateOf(LocalDate.now()) }
val formatter =
DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)
.withLocale(LocalConfiguration.current.locales[0])
if (showDatePicker) {
DatePicker(
initialDate = datePickerDate, // Initialize with last picked date on reopen
onDatePicked = {
datePickerDate = it
showDatePicker = false
},
datePickerType = DatePickerType.YearMonthDay,
minValidDate = currentDate,
)
} else {
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
Button(
onClick = { showDatePicker = true },
label = { Text("Selected Date") },
secondaryLabel = { Text(datePickerDate.format(formatter)) },
icon = { Icon(imageVector = Icons.Filled.Edit, contentDescription = "Edit") },
)
}
}
}
DatePickerSample
@Composable
fun DatePickerSample() {
var showDatePicker by remember { mutableStateOf(true) }
var datePickerDate by remember { mutableStateOf(LocalDate.now()) }
val formatter =
DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)
.withLocale(LocalConfiguration.current.locales[0])
if (showDatePicker) {
DatePicker(
initialDate = datePickerDate, // Initialize with last picked date on reopen
onDatePicked = {
datePickerDate = it
showDatePicker = false
},
)
} else {
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
Button(
onClick = { showDatePicker = true },
label = { Text("Selected Date") },
secondaryLabel = { Text(datePickerDate.format(formatter)) },
icon = { Icon(imageVector = Icons.Filled.Edit, contentDescription = "Edit") },
)
}
}
}
DatePickerYearMonthDaySample
@Composable
fun DatePickerYearMonthDaySample() {
var showDatePicker by remember { mutableStateOf(true) }
var datePickerDate by remember { mutableStateOf(LocalDate.now()) }
val formatter =
DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM)
.withLocale(LocalConfiguration.current.locales[0])
if (showDatePicker) {
DatePicker(
initialDate = datePickerDate, // Initialize with last picked date on reopen
onDatePicked = {
datePickerDate = it
showDatePicker = false
},
datePickerType = DatePickerType.YearMonthDay,
)
} else {
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
Button(
onClick = { showDatePicker = true },
label = { Text("Selected Date") },
secondaryLabel = { Text(datePickerDate.format(formatter)) },
icon = { Icon(imageVector = Icons.Filled.Edit, contentDescription = "Edit") },
)
}
}
}