我如何使用导航控制器替换另一个片段内的片段?



假设我在主片段中有一个片段容器视图,我想通过点击主片段中的按钮来放置两个片段。在一个按钮点击,第一个片段被放置在容器内,并在其他按钮片段被替换为第二个片段。那么我们如何使用导航组件来实现呢?

我通过以下代码完成了这一点:

``val controller by lazy { Navigation.findNavController(requireActivity(), R.id.fragmentContainer)}
btnOne.setOnClickListener{
controller.navigate(R.id.oneFragment)
}
btnOne.setOnClickListener{
controller.navigate(R.id.otherFragment)
}``

我已经尝试过这个代码,但它给了我一个错误:ID没有引用这个活动内的视图

你应该把FragmentContainer放在你的应用程序的主活动中,然后在Nav_graph中你可以将主片段设置为Home目的地。从Nav_graph中,您将能够设置各个片段之间所有可能的目的地。参考文档:

https://developer.android.com/guide/navigation/navigation-getting-started

最新更新