Fixed
Status Update
Comments
ma...@google.com <ma...@google.com>
sg...@google.com <sg...@google.com>
ap...@google.com <ap...@google.com> #2
Lines for reference in ModalBottomSheet.android.kt
causing this behavior:
val newTarget = when (sheetState.anchoredDraggableState.targetValue) {
Hidden -> Hidden
PartiallyExpanded, Expanded -> {
val hasPartiallyExpandedState = newAnchors
.hasAnchorFor(PartiallyExpanded)
val newTarget = if (hasPartiallyExpandedState) PartiallyExpanded
else if (newAnchors.hasAnchorFor(Expanded)) Expanded else Hidden
newTarget
}
}
na...@google.com <na...@google.com> #3
My proposed solution would be:
val targetValue = sheetState.anchoredDraggableState.targetValue
val newTarget = when (targetValue) {
Hidden -> Hidden
PartiallyExpanded, Expanded -> {
when {
newAnchors.hasAnchorFor(targetValue)) -> targetValue
newAnchors.hasAnchorFor(PartiallyExpanded)) -> PartiallyExpanded
newAnchors.hasAnchorFor(Expanded)) -> Expanded
else -> Hidden
}
}
}
Description
The selectedDateMillis setter is internal. So it isn't possible to overrite the selected date.
More info (my message on issue 231704914 ):
Why is it only possible to set a timestamp initially and not overwrite it afterwards? If I use a date picker dialoge and have a cancel button there, then I do not use the selected date, but as soon as the user opens the picker again, the discarded date is still selected. Or should I always recreate the entire pickerstate, but that can't be it...?