Thread
#compose
    Shabinder Singh

    Shabinder Singh

    1 year ago
    When Using Nested NavHost with a seperate navController in BottomSheetScaffold' Sheet , it AUTOMATICALLY EXPANDS! on launch , even when started using Collapsed State... Any Idea how to fix this?, Any help will be appreciated... Note: if i comment out navHost and simply use a Composable in Sheet it doesnt Expand automatically and everything works as Expected
    n

    Nipun Rajput

    1 year ago
    have you tried the composable with modifier wrapheight for each composable you want to open in bottomsheet? Same happened with me but when i wrapped the screen it worked
    Shabinder Singh

    Shabinder Singh

    1 year ago
    I havent explicitly applied wrapContent to Modifiers , but the auto Expand only happens when NavHost is in BottomSheet , if I just comment out NavHost and simply add a single Composable there ,like say DockHomeScreen() (being used as Entry Point in NavHost), Bottom Sheet remains in Collapsed State and doesnt automatically expands on app launch.
    n

    Nipun Rajput

    1 year ago
    That is why I am saying to apply to each and individual screen and test whether it is work or not
    Shabinder Singh

    Shabinder Singh

    1 year ago
    Sure , Will do and report back
    @Nipun Rajput Nope Your suggestion didn't worked
    NAVHOST doesn't work as expected in BottomSheetScaffold Minimal Reproducer: https://github.com/Shabinder/NavHostIssue Screen Records also Attached:
    i

    Ian Lake

    1 year ago
    Did you file an issue for this? https://issuetracker.google.com/issues/new?component=612128 FWIW, I was able to 'fix' your sample by wrapping the
    NavHost
    in
    Box(Modifier.fillMaxSize())
    , but adding the same
    fillMaxSize()
    to the
    NavHost
    itself doesn't fix it, which leads me to believe something odd is going on in
    BottomSheetScaffold
    .
    And I was able to break your
    NormalBottomSheet
    by swapping out your
    sheetContent
    for:
    sheetContent = {
        var callback by remember { mutableStateOf<(() -> Unit)?>(null) }
        LaunchedEffect(Unit) {
            // Set the callback after the initial composition
            callback = {
                callback = null
            }
        }
    
        if (callback != null) {
            FirstScreen(callback)
        }
    },
    I.e., showing no content on the first composition (which is what
    NavHost
    does, since it internally uses
    DisposableEffect
    )
    (interestingly, tapping the
    callback
    there to set it to null just hides the drawer entirely, but maybe that's expected if you don't have any content)
    I was able to 'fix' my broken
    NormalBottomSheet
    by again surrounding it with a
    Box(Modifier.fillMaxSize())
    Shabinder Singh

    Shabinder Singh

    1 year ago
    Hey @Ian Lake thanks for the troubleshooting help and explaining it so clearly , I havent filed an issue yet , will do in evening