Fix navigation drawer overlapping side sheet
This commit is contained in:
1 parent
e428a8be57
commit
895f75a3c5
3 files changed
+6
-8
No files matched your search
@@ -81,7 +81,7 @@ class DrawerState2(initialValue: DrawerValue) {
|
||||
*/
|
||||
val currentValue: DrawerValue
|
||||
get() {
|
||||
return anchoredDraggableState.currentValue
|
||||
return anchoredDraggableState.settledValue
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -428,6 +428,7 @@ class MainActivity : EhActivity() {
|
||||
}
|
||||
}.collectAsState(0f)
|
||||
MutableSideSheet(
|
||||
drawerState = sideSheetState,
|
||||
modifier = Modifier.graphicsLayer {
|
||||
if (radius != 0f) {
|
||||
renderEffect = BlurEffect(radius, radius, TileMode.Clamp)
|
||||
|
||||
@@ -8,11 +8,9 @@ import androidx.compose.foundation.layout.systemBars
|
||||
import androidx.compose.foundation.layout.widthIn
|
||||
import androidx.compose.foundation.shape.CornerSize
|
||||
import androidx.compose.material3.DrawerState2
|
||||
import androidx.compose.material3.DrawerValue
|
||||
import androidx.compose.material3.ModalDrawerSheet
|
||||
import androidx.compose.material3.ModalSideDrawer
|
||||
import androidx.compose.material3.ShapeDefaults
|
||||
import androidx.compose.material3.rememberDrawerState2
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.DisposableEffect
|
||||
@@ -40,12 +38,11 @@ fun ProvideSideSheetContent(content: Sheet) {
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun MutableSideSheet(modifier: Modifier, enabled: Boolean, content: @Composable () -> Unit) {
|
||||
fun MutableSideSheet(drawerState: DrawerState2, modifier: Modifier, enabled: Boolean, content: @Composable () -> Unit) {
|
||||
val sheet = remember { mutableStateListOf<Sheet>() }
|
||||
val f = sheet.firstOrNull()
|
||||
val state = rememberDrawerState2(DrawerValue.Closed)
|
||||
val width = with(LocalDensity.current) { LocalWindowInfo.current.containerSize.width.toDp() }
|
||||
CompositionLocalProvider(LocalSideSheetState provides state, LocalSideSheetContainer provides sheet) {
|
||||
CompositionLocalProvider(LocalSideSheetContainer provides sheet) {
|
||||
ModalSideDrawer(
|
||||
drawerContent = {
|
||||
if (f != null) {
|
||||
@@ -54,12 +51,12 @@ fun MutableSideSheet(modifier: Modifier, enabled: Boolean, content: @Composable
|
||||
drawerShape = ShapeDefaults.Large.copy(topEnd = CornerSize(0), bottomEnd = CornerSize(0)),
|
||||
windowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Top + WindowInsetsSides.End),
|
||||
) {
|
||||
f(state)
|
||||
f(drawerState)
|
||||
}
|
||||
}
|
||||
},
|
||||
modifier = modifier,
|
||||
drawerState = state,
|
||||
drawerState = drawerState,
|
||||
gesturesEnabled = f != null && enabled,
|
||||
content = content,
|
||||
)
|
||||
|
||||
Reference in new issue
Block a user