https://kotlinlang.org logo
#compose
Title
# compose
c

colintheshots

12/10/2021, 8:06 PM
Is there any known issue in Jetpack Compose Navigation where the back gesture or certain screen taps can cause the entire Compose hierarchy to become non-interactable? We’re seeing, especially with the back gesture enabled instead of 3 button mode, that making the back gesture causes the whole Compose view we return to to be disconnected from all listeners and not interactive. If we back out again then everything works. What’s especially strange is that pressing the Close button to call navController.popBackStack() in a clickable callback doesn’t cause this issue, but that overriding the back behavior with a BackHandler to do the exact same thing does cause the issue. I do wonder if the cause is in any way related to the fact that we’re using Jetpack Navigation on some top-level screens and Jetpack Compose Navigation locally within certain sections of the app. Any thoughts? We’re pretty stumped right now. Compose version is 1.1.0-alpha03 with Accompanist 0.21.3-beta. We’re also using bottom sheets from Navigation-Material on some screens.
j

jossiwolf

12/10/2021, 8:37 PM
What kind of destinations are the screen where this issue happens?
c

colintheshots

12/10/2021, 8:43 PM
This is happening when I have a composable destination visible. Believe it or not, it doesn’t seem to be happening when a bottomSheet destination is onscreen.
j

jossiwolf

12/10/2021, 8:46 PM
Alright, just wanted to make sure🙂 It shouldn't be related to Accompanist Nav Material then at least
c

colintheshots

12/10/2021, 8:46 PM
Well, I wonder if it’s some sort of issue with adding the bottomSheetNavigator to the navigatorProvider.
Because only bottom sheets seem to not exhibit the problem right now.
a

allan.conda

12/10/2021, 8:58 PM
You can try to come up with a minimal repro.
c

colintheshots

12/10/2021, 9:01 PM
I’m working on that. Gathering details. It seems to still occur after I removed the bottomSheetNavigator and the ModalBottomSheetLayout. So I think Accompanist may be off the hook.
d

Dmitry Strekha

12/11/2021, 3:56 PM
I think I faced a similar problem on my playground project: after some time the compose stops to react to any touches. The app is also uses Accompanist for insets handling, but seems it's not a reason of the bug. I tried to find a piece of code that causes this behaviour and created a sample, that reproduces the problem:
Copy code
setContent {
            MaterialTheme {
                ProvideWindowInsets {
                    Column(
                        modifier = Modifier.fillMaxSize(),
                        horizontalAlignment = Alignment.CenterHorizontally
                    ) {
                        Button(onClick = {}) {
                            Text("Click me")
                        }
                    }
                }
            }
        }
At first button is clickable, but if you swipe below, or swipe from the corner to show "back" arrow and then release it without
onBackPressed
calling, the button stops to react to future clicks. But, if you remove
modifier = Modifier.fillMaxSize()
, everything works fine. PS. I'm using 1.0.4 version
👍 1
🙏 1
Updating the compose to
1.1.0-beta04
solved the issue 🤪 Maybe this resolve yours?
c

colintheshots

12/12/2021, 2:31 AM
Compose
1.1.0-beta04
seems to cause more problems than it fixes currently. It breaks our end-to-end tests. But maybe I can mess with it.
Here’s the issue with `1.1.0-beta04`… We’re currently crashing due to this issue with BottomSheetScaffolds. We could upgrade to the next version that comes out with the fix for it. https://issuetracker.google.com/issues/208855077
a

Alex

12/15/2021, 5:22 PM
I have (by pure chance) found that adding a
Copy code
.pointerInteropFilter {
  false
}
to the modifier of the Column or LazyColumn fixes the issue on beta03
This has led to us adding a neat new modifier:
Copy code
@OptIn(ExperimentalComposeUiApi::class)
fun Modifier.beta03unresponsivenessFix() = pointerInteropFilter {
    // TODO: compose-beta03: This fixes the unresponsiveness issues where clicks are not registered
    false
}
j

jossiwolf

12/15/2021, 7:15 PM
cc @matvei
c

colintheshots

12/15/2021, 7:48 PM
Incidentally, the original issue we found at the start of this thread is resolved in Compose 1.1.0-rc01.
m

matvei

12/16/2021, 2:45 PM
Not sure what it needed here from me, but happy that the update resolved the issue 🙂
😁 1