Jetpack Compose: App crashes when navigating from popup menu to another screen/fragment

Viewed 338

I have a dropdown IconButton on a LazyColumn list of rows.

This dropdown exposes two actions, "View Profile" and "View History".

I am picking the userId and navigating to the respective screens/fragments depending on which action the user selects.

My navigation logic(using navManager) is on the view model of the current fragment with the dropdowns. On navigation I get the below stacktrace. What am I possibly doing wrong?

java.lang.IllegalArgumentException: View=androidx.compose.ui.window.PopupLayout{3ddfe66 V.E...... ......ID 0,0-339,240 #1020002 android:id/content} not attached to window manager
    at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:580)
    at android.view.WindowManagerGlobal.updateViewLayout(WindowManagerGlobal.java:474)
    at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:101)
    at androidx.compose.ui.window.PopupLayout.updatePosition(AndroidPopup.android.kt:584)
    at androidx.compose.ui.window.PopupLayout.onGlobalLayout(AndroidPopup.android.kt:683)
    at android.view.ViewTreeObserver.dispatchOnGlobalLayout(ViewTreeObserver.java:1070)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3189)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2204)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9069)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:999)
    at android.view.Choreographer.doCallbacks(Choreographer.java:797)
    at android.view.Choreographer.doFrame(Choreographer.java:732)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:984)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:8107)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

Dropdown:

var expanded by remember { mutableStateOf(false) }
Icon(Icons.Default.KeyboardArrowDown, "Keyboard Arrow Down")
DropdownMenu(
    expanded = expanded,
    onDismissRequest = { expanded = false },
    modifier = Modifier
        .padding(horizontal = 24.dp)
) {
    listItems.forEachIndexed { index, label ->
        DropdownMenuItem(onClick = {
            onMenuSelect(index, clientDetails.clientId)
        }) {
            Text(text = label)

        }
    }
}
0 Answers
Related