web-dev-qa-db-fra.com

Comment configurer une zone d'outils différente à l'aide du composant de contrôleur de navigation?

Je ne suis pas sûr que la manière correcte ou la meilleure pratique de définir différentes barres d'outils à l'aide du composant de contrôleur de navigation

dans mon application. Je veux définir 2 barres d'outils différentes.

  1. barre d'outils verte
  2. barre d'outils rouge

deux barres d'outils avec une couleur différente. Ceci est juste pour simplifier le cas, en fait, j'ai plusieurs barres d'outils

J'utilise le composant de contrôleur de navigation. et actuellement sur mon activité principale en tant qu'hôte, j'ai défini la barre d'outils verte dans mon activité principale en utilisant ce code.

        setSupportActionBar(green_toolbar)
        supportActionBar?.setDisplayShowTitleEnabled(false)

        // set up top hierarchy destination
        val appBarConfiguration = AppBarConfiguration(setOf(
            R.id.destination_home,
            R.id.destination_search,
            R.id.destination_user_control,
            R.id.destination_create_event)
        )

        green_toolbar.setupWithNavController(navController,appBarConfiguration)

alors, quelle est la meilleure façon de définir une zone d'outils différente à l'aide du composant de contrôleur de navigation?

dois-je faire ces 2 barres d'outils différentes dans mon activité principale? Ou dois-je définir une destination fragmentaire (qui a une barre d'outils rouge) comme une autre activité non comme fragment?

ou .... Je ne sais pas ... s'il vous plaît aide :)

12
Alexa289

Il serait plus pratique de laisser la mise en page de la main-d'accueil avec un fragment de navigation juste et de définir les barres d'outils nécessaires dans des départs de fragments. Puis dans chaque fragment onCreateView:

(activity as AppCompatActivity).setSupportActionBar(toolbar)

toolbar.setNavigationOnClickListener { view ->
    view.findNavController().navigateUp()
}

Pour un meilleur exemple, voir comment cela se fait dans l'application Android-Sunflower par Google: https://github.com/googlesamples/android-sunflower

0
Pavel Berdnikov