Как изменить атрибут метки пункта назначения в контроллере навигации? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь использовать навигационный контроллер в Android

enter image description here

, как вы можете видеть на изображении выше, я установил атрибут labelмой пункт назначения - «Домой».

и этот ярлык будет отображаться как заголовок на моей панели инструментов.я могу изменить этот ярлык программно?потому что я хочу динамически устанавливать заголовок панели инструментов.

Я пытался изменить заголовок панели инструментов, используя toolbar.title = "some title here", но он всегда будет перекрываться с заголовком этой метки.

, так как решитьэто?

1 Ответ

0 голосов
/ 12 февраля 2019

Сделайте это в своей деятельности, как показано ниже, это работает для меня:

 setSupportActionBar(toolbar)
    val navController = findNavController(R.id.nav_controller_fragment)
    val appBarConfiguration = AppBarConfiguration(navController.graph)
    setupActionBarWithNavController(navController, appBarConfiguration)


    navController.addOnDestinationChangedListener { controller, destination, arguments ->
        when (destination.id) {
            R.id.mainFragment -> toolbar.title = "ok"
            else -> {
                toolbar.title = "General"
            }
        }
    }

или, если вы хотите изменить свой фрагмент, сделайте, как показано ниже:

 override fun onStart() {
    super.onStart()
    (activity as MainActivity).toolbar.title = "changed"
}
...