web-dev-qa-db-fra.com

Android Composant d'architecture de navigation - Le composant d'architecture de navigation est-il destiné à n'utiliser qu'une seule activité?

J'apprends actuellement sur le nouveau composant d'architecture de navigation Android ( https://developer.Android.com/topic/libraries/architecture/navigation / ).

Je confond un peu avec son motif et son concept, voici mes incertitudes:

  1. Le composant d'architecture de navigation Android est-il conçu pour éliminer le besoin d'utiliser plusieurs activités dans une seule application? Ce qui signifie que toutes les applications ont juste besoin d'une seule activité et toutes les autres pages seront des fragments?
  2. Est-ce que l'utilisation de plusieurs activités dans les applications, mais en même temps, l'utilisation du composant de l'architecture de navigation Android pour naviguer dans le fragment viole en fait l'objectif de Composant d'architecture de navigation Android ?

Exemple de scénario pour la question 2 :

enter image description here

14
I am a Student

En théorie, la bibliothèque de navigation prend en charge toute architecture que vous souhaitez utiliser. Hors de la boîte, il peut gérer les activités et les fragments comme destinations de navigation, mais vous pouvez connecter votre propre solution en implémentant votre propre navigateur (par exemple, voir cet article ) .

Cependant, cité/paraphrasé du Google I/O talk on Navigation :

Quelle est réellement mon activité?

À l'heure actuelle, certaines applications sont très gourmandes en activités, d'autres sont lourdes en fragments ou complètement dans un système différent. Nous nous dirigeons vers un modèle où l'activité est plus qu'un simple point d'entrée dans votre application, plutôt que d'être le propriétaire du contenu de votre application. Cela va en fait simplement stocker l'état global, par exemple la navigation globale comme un tiroir de navigation ou la barre inférieure.

Donc, Google recommande de n'avoir que quelques activités pour votre application, car vous n'en avez vraiment besoin que pour servir de points d'entrée. Par exemple, vous pouvez en avoir un qui s'ouvre à partir du lanceur et un autre qui est ouvert par des liens profonds. Après cela, lorsque votre application est lancée, vous pouvez faire tout le reste à l'intérieur avec Fragments.

Pour résumer et répondre directement à vos deux questions:

  1. Le composant d'architecture de navigation n'est pas "conçu pour éliminer la nécessité d'utiliser plusieurs activités" en soi, mais c'est quelque chose que Google recommande de faire lorsque vous l'utilisez.

  2. Vous pouvez toujours utiliser plusieurs activités et plusieurs fragments mélangés ensemble. Vous pouvez même utiliser une seule activité avec une navigation basée uniquement sur la vue si vous le souhaitez. Cela ne tient qu'à toi. Si vous trouvez la bibliothèque de navigation utile en combinaison avec la façon dont vous concevez votre application, utilisez-la.

    L'outillage de la bibliothèque n'est peut-être pas idéal pour les destinations personnalisées (par exemple, l'éditeur visuel ne prendra probablement en charge que les activités et les fragments pour le moment), mais vous pouvez l'utiliser comme vous le souhaitez à partir du code.

10
zsmb13