在一个Android应用程序中,我使用的是Navigation组件。在一些地方,我使用了列表/细节视图。我使用了AbstractListDetailFragment,还尝试了SlidingPaneLayout。使用AbstractListDetailFragment,它设置了一个OnBackPressedCallback,而使用SlidingPaneLayout,我提供了一个OnBackPressedCallback。在这两种情况下,我得到了相同的行为。
我有这样一个结构:开始片段-〉列表片段-〉细节片段。
在宽屏幕上,一切正常。但是,在窄屏幕上,如果我在Detail Fragment上点击工具栏上的back按钮,它不会将我带回List Fragment,而是返回到Start Fragment。硬件上的back按钮似乎被OnBackPressedCallback捕获并执行了正确的操作,但工具栏上的back按钮没有。
我当然可以在Detail Fragment中捕捉到R.id.home,但是对于AbstractListDetailFragment,它对自己所在的世界一无所知。它只是接收了一些参数的另一个片段,并使用这些参数完成自己的任务。它不知道自己是否是并排的。更复杂的是,它在自己的导航图中。
怎么样才是正确的处理方式?
1条答案
按热度按时间sqyvllje1#
将此添加到详图片段可解决以下问题: