fix cancelling dialogs with preventDismiss
This commit is contained in:
+10
-1
@@ -66,6 +66,11 @@ class BottomSheetView(
|
|||||||
set(value) {
|
set(value) {
|
||||||
field = value
|
field = value
|
||||||
this.dialog?.setCancelable(!value)
|
this.dialog?.setCancelable(!value)
|
||||||
|
// Full-height sheets have no half-expanded snap point, so any drag
|
||||||
|
// would dismiss. Disable dragging when dismiss is prevented.
|
||||||
|
if (fullHeight) {
|
||||||
|
this.setDraggable(!value && !disableDrag)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var fullHeight = false
|
var fullHeight = false
|
||||||
@@ -318,7 +323,11 @@ class BottomSheetView(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun dismiss() {
|
fun dismiss() {
|
||||||
this.dialog?.cancel()
|
val dialog = this.dialog ?: return
|
||||||
|
// Temporarily make cancelable so cancel() works — cancel() gives the
|
||||||
|
// slide-out animation, while dismiss() does a plain fade.
|
||||||
|
dialog.setCancelable(true)
|
||||||
|
dialog.cancel()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Observe each direct child of innerView via OnLayoutChangeListener so that
|
// Observe each direct child of innerView via OnLayoutChangeListener so that
|
||||||
|
|||||||
Reference in New Issue
Block a user