我有一个简单的导航图,像这样:
MainFragment -> ListFragment -> DetailFragment
如何实现从MainFragment到DetailFragment的“快捷方式”,所以:
这可能吗?感谢您的建议!
编辑:我的解决方案
我可以简单地先导航到ListFragment,然后立即导航到DetailFragment,就像这样(我从MainFragment调用了两个“导航”调用):
findNavController().navigate(MainFragmentDirections.toListFragment())
findNavController().navigate(ListFragmentDirections.toDetailFragment(data))
根据documentation的说法,即“ ...“向上”按钮的功能应与系统的“后退”按钮相同”,我决定不对“后退”和“向上”动作进行区别。
答案 0 :(得分:1)
要使用导航组件遍历片段,应将其链接到导航图中,请转到app-> res-> navigation-> graphName.xml
(在图片中,我使用占位符,而使用片段)。
您可以在documentation中看到从一个片段导航到另一个片段,您需要使用此行Navigation.findNavController(view).navigate(R.id.viewTransactionsAction);
viewTransactionsAction
应该是从一个片段到下一个片段的箭头ID(在图中)。
要覆盖后退按钮,请使用:
@Override
public boolean onSupportNavigateUp() {
return Navigation.findNavController(this, R.id.nav_host_fragment).navigateUp();
}
然后在导航nav_host_fragment
内替换为要导航到的页面的箭头ID。