как изменить значок панели инструментов (значок гамбургера) при использовании панели навигации с компонентом навигации Jetpack - PullRequest
2 голосов
/ 02 августа 2020

Я использую компонент навигации Jetpack для создания панели навигации, я хочу изменить значок гамбургера на панели инструментов, я пробовал много решений, таких как ниже, но они не работают

app:navigationIcon="@drawable/menu"

также

getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.menu);

а это мой код

 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    setSupportActionBar(toolbar)
    navController=findNavController(R.id.nav_host_fragment)
    appBarConfiguration=AppBarConfiguration(setOf(R.id.nav_acceuil,R.id.nav_notifications,R.id.nav_gerer,R.id.nav_deconnexion),drawer_layout)
    setupActionBarWithNavController(navController,appBarConfiguration)
    nav_view.setupWithNavController(navController);
}

1 Ответ

0 голосов
/ 02 августа 2020

Вы можете использовать addOnDestinationChangedListener:

    navController.addOnDestinationChangedListener { controller, destination, arguments ->
        if (destination.id == R.id.nav_xxxx){
            supportActionBar?.setHomeAsUpIndicator(R.drawable.xxxx)
        }
    }
...