我使用下面的代码实现了这一点,但是当我单击底部导航的搜索或帐户图标时,其首先显示默认导航图标,然后将其删除。 如何在导航中避免这种情况。
主要活动代码
class MainActivity : AppCompatActivity(), TempToolbarTitleListener {
private lateinit var navController : NavController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setSupportActionBar(toolbar)
setupNav()
}
private fun setupNav() {
navController = Navigation.findNavController(this, R.id.fragment_nav)
setupActionBarWithNavController(this, navController)
NavigationUI.setupWithNavController(bottomNavigationView, navController)
}
override fun onSupportNavigateUp(): Boolean { return navController.navigateUp() }
override fun updateTitle(title: String, icon: Int) {
val drawable: Drawable
toolbar.title = title
when {
icon != 0 -> {
drawable = resources.getDrawable(icon)
toolbar.navigationIcon = drawable
}
else -> toolbar.navigationIcon = null
}
}
}
我正在使用界面获取信息以更新工具栏详细信息
界面
interface TempToolbarTitleListener {
fun updateTitle(title: String, icon : Int)
}
搜索片段 我不想要导航图标的地方我传递0,如果我传递可绘制的文件
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
(activity as TempToolbarTitleListener).updateTitle("Search Here",0)
return inflater.inflate(R.layout.fragment_search, container, false)
}