如何导航到Half Fragment? (导航架构组件)

时间:2018-11-21 17:11:37

标签: android android-fragments android-architecture-components android-jetpack android-architecture-navigation

我正在我的应用程序中尝试导航体系结构组件。 早些时候,我使用碎片交易来实现以下功能。 基本上我想从中导航。

FragmentA-> FragmentB (自定义片段部分透明,只有屏幕大小的一半)

如果我使用的是导航组件,请尝试

Navigation.findNavController(view).navigate(R.id.action_FragmentA_to_FragmentB)

然后结果是将FragmentA替换为FragmentB,并且背景片段不可见。

我想知道一个解决方案,如果导航架构组件允许的话。

P.S:我听说过嵌套的导航主机,但是从Fragment内部使用会很好。

更新

FragmentB将具有用于进一步交易的动作,并且 例如:

FragmentA-> FragmentB-> FragmentC (自定义片段部分透明且只有屏幕大小的一半)

当用户按下“后退”按钮时,Fragment C应该替换FragmentB,并且应该为所有碎片事务维护backStack。

Demo

2 个答案:

答案 0 :(得分:2)

您可以使用BottomSheetDialogFragment获得所需的结果。
更多信息:https://developer.android.com/reference/android/support/design/widget/BottomSheetDialogFragment

答案 1 :(得分:0)

TLDR:我使用嵌套图来满足要求。

您好,谢谢您的帮助,但是我可以按照以下步骤在BottomSheet中导航。

  • MainActivity

    • NavHost( FragXYZ-> FragA
      • 内部片段A )BottomSheetDialogFragment.show()以显示bottomSheetMenu
        • 在片段B内部)BottomSheetDialog 片段(使用Fragment开始BottomSheetDialogFragment的子片段 交易)扩展了NavHostFragment

演示:GitHub