Android导航抽屉截取箭头后退按钮

Android导航抽屉截取箭头后退按钮,android,navigation-drawer,android-jetpack,Android,Navigation Drawer,Android Jetpack,我正在为我的Android应用程序使用最新的JetPack实现,我需要根据逻辑有条件地从我的一个片段导航回来 我发现了这段精美的代码:requireActivity().onBackPressedDispatcher.addCallback(),我在其中添加了我的逻辑 但只有当我按下手机的后退按钮(物理或虚拟)时,它才起作用。如果在导航发生时单击出现在汉堡位置的导航箭头,则不会调用此方法 是否可以在片段中管理此事件 提前感谢JetPack为您提供了片段菜单,这样您就不必编写所有样板逻辑。可以找到

我正在为我的Android应用程序使用最新的JetPack实现,我需要根据逻辑有条件地从我的一个片段导航回来

我发现了这段精美的代码:
requireActivity().onBackPressedDispatcher.addCallback()
,我在其中添加了我的逻辑

但只有当我按下手机的后退按钮(物理或虚拟)时,它才起作用。如果在导航发生时单击出现在汉堡位置的导航箭头,则不会调用此方法

是否可以在片段中管理此事件


提前感谢

JetPack为您提供了片段菜单,这样您就不必编写所有样板逻辑。可以找到有关片段的其他信息

如本文所述,导航组件将在除“顶层”外的所有目的地上显示“后退”按钮。 您注意到,当单击“后退”按钮时,什么也没有发生。您可以创建一个回退侦听器,如:

new AppBarConfiguration.Builder().setFallbackOnNavigateUpListener(listener).build()

要更好地理解为什么需要回退侦听器,是因为按下后退按钮调用NavigationUI.navigateUp(…),它调用NavController.navigateUp(),试图从回退中弹出片段。如果没有要弹出的内容,它将返回false,并将调用您的回退侦听器。

我已将此->用于我的一个项目。@tiborK抱歉迟到了。谢谢你的评论。你能给我一个解释的答案吗?这样我就可以把它标记为解决了?