我在我的应用程序中尝试导航架构组件 . 之前我使用Fragment Transaction来实现以下功能 . 基本上我想从中导航 .
FragmentA->FragmentB (自定义片段部分透明,屏幕尺寸的一半)
如果我正在使用导航组件并尝试
Navigation.findNavController(view).navigate(R.id.action_FragmentA_to_FragmentB)
然后结果是FragmentA被FragmentB替换,背景片段不可见 .
如果导航架构组件允许,我想知道一个解决方案 .
P.S:我听说过嵌套的导航主机,但是从Fragment里面使用它是好的 .
Update:
FragmentB将为进一步的交易和示例提供行动:
FragmentA->FragmentB->FragmentC (自定义片段部分透明,屏幕大小的一半)
当用户按下后退按钮时,片段C应该替换FragmentB,并且应该为所有片段事务维护backStack .
2 回答
您可以使用BottomSheetDialogFragment来获得所需的结果 .
更多信息:https://developer.android.com/reference/android/support/design/widget/BottomSheetDialogFragment
TLDR:我使用嵌套图来实现这个要求 .
您好,感谢您的帮助,但我可以使用以下程序在BottomSheet中进行导航 .
MainActivity
NavHost( FragXYZ->FragA )
( Inside Fragment A )BottomSheetDialogFragment.show()显示bottomSheetMenu
( Inside Fragment B )BottomSheetDialog Child 片段(使用片段事务启动BottomSheetDialogFragment的子片段)扩展了NavHostFragment
演示:GitHub