首页 > 解决方案 > 如何使用导航组件库从底部导航更改片段上的工具栏图标?

问题描述

我已经使用 navHostController 设置了底部导航,我有一个带有工具栏的容器活动,我想根据我所在的片段更改工具栏中的图标,如果我不使用导航组件库,这很容易.

主要活动

 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    bottomNavigationView.setupWithNavController(dashboardNavHostFragment.findNavController())
}

在此处输入图像描述

我想将工具栏中的图标更改为底部导航中活动的片段。

标签: androidandroid-fragmentsandroid-architecture-navigationandroid-navigationandroid-bottomnav

解决方案


您可以使用addOnDestinationChangedListener.
就像是:

navController.addOnDestinationChangedListener { _, destination, _ ->
   if(destination.id == R.id.xxxx) {
       toolbar.setNavigationIcon(R.drawable.xxxx)
   } else {
       //
   }
}

推荐阅读