Tiroir de navigation Android Studio comme application Gmail

Nous faisons une application Android, et nous voulons append quelque chose. Quel est l’effet de l’application Gmail?

Vous pouvez choisir le compte que vous voulez voir (et le rest de l’application se comportera en conséquence).

Exemple

MODIFIER:

J’ai déjà une barre de navigation (fonctionnelle), mais ce que je veux, ce sont les icons rondes dans l’en-tête. Je veux que quelqu’un puisse choisir l’utilisateur qu’il regarde.

Vous pouvez obtenir l’effet souhaité en utilisant NavigationView partir de la com.android.support:design prise en charge com.android.support:design .

Vous pouvez trouver un tutoriel complet à ce sujet ici . Et vous pouvez télécharger le code source complet à partir de ce tutoriel ici .

Et voici un autre bon tutoriel que vous pourriez suivre.

En résumé, cette vue est divisée en deux parties principales, un en-tête et une partie de menu, et chacune de celles-ci que vous devrez définir sur XML.

A partir de ce tutoriel:

Vue d’en-tête

Cette vue est essentiellement la partie supérieure du tiroir de navigation, qui contient la photo de profil, le nom, l’adresse électronique, etc. Vous devez définir cela dans un fichier de mise en page séparé que nous examinerons dans un instant.

Menu

C’est le menu que vous souhaitez afficher sous votre en-tête. Nous définissons le menu dans un dossier de menus, tout comme vous définissez le menu pour votre menu de dépassement. En résumé, NavigationView est un conteneur de la vue en-tête et du menu que vous allez utiliser dans votre tiroir coulissant. Alors, maintenant que vous comprenez le NavigationView, nous pouvons commencer à construire notre tiroir de navigation.

Dans cet esprit, construisez votre en-tête comme vous le feriez avec n’importe quelle autre disposition. Et le menu est défini un peu comme le menu Toolbar / ActionBar. par exemple:

navigation_menu.xml

          

Ensuite, pour votre Activity il vous suffira de faire une mise en page similaire à celle trouvée dans le tutoriel, en utilisant DrawerLayout avec NavigationView .

         

Vous devrez également créer des Fragments pour chaque écran que vous souhaitez afficher avec ce NavigationView . Une fois que vous avez terminé, dans votre Activity vous pouvez gérer les événements de sélection en implémentant NavigationView.OnNavigationItemSelectedListener , comme suit:

 public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { // Your Activity @Override public boolean onNavigationItemSelected(MenuItem menuItem) { Fragment fragment = null; switch(menuItem.getItemId()) { case R.id.drawer_home: fragment = new YourFragment(); break; case R.id.drawer_content: fragment = new AnotherFragment(); break; case R.id.drawer_about: fragment = new AboutFragment(); break; case R.id.drawer_exit: // TODO - Prompt to exit. finish(); break; } if (fragment == null) { fragment = new YourFragment(); } drawerLayout.closeDrawers(); FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.container, fragment) .commit(); return true; } } 

En ce qui concerne votre édition, les icons pourraient être représentées par un ImageView . Et pour naviguer entre plusieurs profils, cela dépend de la manière dont vous avez implémenté cette logique dans votre application, mais en tant que réponse “générique”, vous pouvez changer ces profils en utilisant quelque chose qui ressemble à Spinner .

Ces tutoriels vous aideront à traverser cette étape:

  • Android spinner (liste déroulante) exemple
  • Android – Spinner
  • Exemple de base Spinner (question Stackoverflow)
  • Spinners (Guide de développement Android)

Une fois que vous avez défini cela dans votre en- tête , gérez la sélection d’éléments et modifiez le profil de l’utilisateur en conséquence. (Cette dernière partie dépend ENTIÈREMENT de la manière dont vous avez implémenté les profils utilisateur sur votre application). Mais juste comme une longueur d’avance, vous pouvez vérifier le site de formation Android , plus précisément, cette partie .

Vous devriez utiliser NavigationView

Il fournit le cadre permettant de mettre en œuvre facilement le tiroir de navigation dans la matière à l’aide de l’inflation d’éléments de navigation dans les ressources de menu. Avant l’Affichage de navigation, nous avons des difficultés à créer un tiroir de navigation dans la matière à l’aide de listview ou de linéarisation avec un adaptateur personnalisé, mais il ne nous rest plus maintenant qu’à append la vue de navigation dans DrawerLayout.

     

Pour cette exigence, vous pouvez vérifier l’échantillon

  1. MaterialDrawer

  2. Comment faire un tiroir de navigation de conception de matériaux

  3. Jouer avec NavigationView

J’espère que cela t’aides .

Je pense que ce MaterialDrawer est ce que vous recherchez. Cette bibliothèque a beaucoup d’exemples. Vous pouvez utiliser cette bibliothèque directement ou lire le code source et implémenter votre propre tiroir.