我想通过使用导航组件来更改片段,但是我想从活动中更改片段。如何从活动中更改片段?
tab_layout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabReselected(p0: TabLayout.Tab?) {
}
override fun onTabUnselected(p0: TabLayout.Tab?) {
}
override fun onTabSelected(p0: TabLayout.Tab?) {
if (tab_layout.selectedTabPosition == **Summary_Fragment().findNavController().navigate(R.id.sum_to_report)**
}
}
})
我希望输出更改ID为sum_to_report
的片段
答案 0 :(得分:0)
NavController
用于从一个目的地导航到另一目的地,可以通过以下一种静态方法进行检索:
NavHostFragment.findNavController(Fragment)
Navigation.findNavController(Activity, @IdRes int viewId)
Navigation.findNavController(View)
检索NavController
后,使用navigate()
方法导航到目的地。 navigate()
方法接受资源ID。该ID可以是导航图中特定目的地的ID,也可以是动作的ID。使用操作的ID,而不是目标的资源ID。
例如,
Navigation.findNavController(this, R.id.my_nav_host_fragment).navigate(R.id.action_navigationFragment_to_blankFragment)