导航组件,添加或替换片段或其他类似隐藏显示片段的内容

Moh*_*adi 8 android kotlin android-architecture-navigation

我们如何在导航组件中指定替换或添加片段?

NavHostFragment.findNavController(this).navigate(R.id.action_splashFragment_to_categoriesFragment)
Run Code Online (Sandbox Code Playgroud)

Moh*_*eza 2

如果您只是使用findNavController().navigate(R.id.someDestinationId)这种等于,fragmentManager.add但如果您想要替换行为并且不希望用户能够按回并重新加载先前的活动,您应该这样做:

findNavController().navigate(R.id.homeFragment, null, NavOptions.Builder()
                .setPopUpTo(R.id.loginFragment, true)
                .build())
Run Code Online (Sandbox Code Playgroud)

在本例中,我位于LoginFragment内,我想导航到HomeFragment,并且我还想替换当前片段,以便用户无法按回键并再次加载LoginFragment