导航到FAB单击上的片段(导航架构组件)

Cha*_*irk 7 android android-layout android-fragments android-activity kotlin

我不知道如何使用新的导航体系结构组件从我的主屏幕(带有FloatingActionButton标记为BottomAppBar)导航到另一个没有应用栏的屏幕。

当我单击晶圆厂时,我希望我的下一个屏幕(片段?)从右侧滑入。问题是我该放在哪里BottomAppBar?如果我把它放进去,那我MainActivity就会遇到FloatingActionButton没有NavController一套的问题。我也不能把我BottomAppBar的片段。我很茫然。

Dar*_*lek 28

今天遇到这个问题,我发现有一个简单而优雅的解决方案。

val navController = findNavController(R.id.navHostFragment)

fabAdd.setOnClickListener {
   navController.navigate(R.id.yourFragment)
}  
Run Code Online (Sandbox Code Playgroud)

这负责导航。然后你必须控制你的BottomAppBar内部的可见性Activity


Yas*_*yan 5

你可以让你BottomAppBarMainActivity和访问您FloatingActionButton在您的片段如下

activity?.fab?.setOnClickListener { 
    /*...*/
    findNavController().navigate(R.id.action_firstFragment_to_secondFragment, mDataBundle)
}
Run Code Online (Sandbox Code Playgroud)

您可以BottomAppBar按如下方式从另一个活动中隐藏

(activity as AppCompatActivity).supportActionBar?.hide()
Run Code Online (Sandbox Code Playgroud)

确保你.show()BottomAppBar,而返回到以前的片段