Tiroir de navigation (Google+ vs YouTube)

403

Est-ce que quelqu'un sait comment implémenter un menu coulissant comme certaines des meilleures applications d'aujourd'hui?

Les autres questions sur le débordement de pile n'ont pas eu de réponse sur la façon de procéder, donc j'essaie de rassembler autant d'informations pour aider les autres. Toutes les applications que je mentionne ci-dessous font un excellent travail de mise en œuvre du menu coulissant.

1. Google Plus (au 7/7/12)

Capture d'écran du menu déroulant Google+

Vous ne pouvez passer du premier écran au deuxième écran qu'en cliquant sur le logo G + dans le coin supérieur gauche. Notez que l'écran entier se déplace de sa position et se déplace vers le côté droit de l'écran (y compris la barre d'action). Pour revenir au premier écran, vous pouvez soit faire glisser le côté droit en arrière ou vous pouvez cliquer à nouveau sur l'icône G +.

2. YouTube (au 7/7/12)

Capture d'écran du menu déroulant YouTube

Vous pouvez passer du premier écran au deuxième écran en utilisant deux méthodes. Vous pouvez soit cliquer sur le logo YouTube en haut à gauche, soit utiliser un mouvement de balayage pour le déplacer vers la droite. C'est déjà différent de l'application G +. Deuxièmement, vous pouvez voir que la barre d'action reste en place (contrairement à G +). Enfin, pour récupérer l'écran d'origine, cela fonctionne exactement comme G +.

EGHDK
la source
1
À première vue, peu de gens ont déjà travaillé sur quelque chose comme ça. Je suggère d'essayer d'implémenter quelque chose vous-même et de venir à SO avec des problèmes spécifiques que vous pourriez rencontrer.
David Titarenco
7
Oui, c'est pourquoi j'ai posté une question SO dans d'autres qui, je pense, mérite un peu plus d'attention. Je me demande simplement s'il y a quelqu'un qui a réussi cela et qui aimerait partager sa sagesse.
EGHDK
1
@EGHDK Consultez cette série d'articles: android.cyrilmottier.com/?p=658
Alex Lockwood
2
J'ai répondu à cette question il y a un moment, mais je suis de retour pour souligner à nouveau que Prixing a le meilleur menu volant là-bas ... de loin. C'est absolument magnifique, parfaitement fluide et cela fait honte à Facebook, Google+ et YouTube. EverNote est assez bon aussi ... mais toujours pas aussi parfait que Prixing. Découvrez cette série d'articles sur la façon dont le menu déroulant a été mis en œuvre (par nul autre que le développeur en chef de Prixing lui-même!).
Alex Lockwood du
2
Avec la version 13 du package de support Android (mai 2013), il existe DrawerLayout pour créer un tiroir de navigation qui peut être tiré depuis le bord d'une fenêtre. Et maintenant, le tiroir de navigation est un modèle de conception. developer.android.com/tools/extras/support-library.html
Wubao Li

Réponses:

152

Édition n ° 3:

Le motif du tiroir de navigation est officiellement décrit dans la documentation Android!

entrez la description de l'image ici Consultez les liens suivants:

  • Les documents de conception peuvent être trouvés ici .
  • Les documents des développeurs peuvent être trouvés ici .

Édition n ° 2:

Roman Nurik (un ingénieur de conception Android chez Google) a confirmé que le comportement recommandé est de ne pas déplacer la barre d'action lors de l'ouverture du tiroir (comme l'application YouTube). Voir ce post Google+ .


Édition n ° 1:

J'ai répondu à cette question il y a quelque temps, mais je suis de retour pour souligner à nouveau que Prixing a le meilleur menu volant là-bas ... de loin . C'est absolument magnifique, parfaitement fluide et cela fait honte à Facebook, Google+ et YouTube. EverNote est assez bon aussi ... mais toujours pas aussi parfait que Prixing. Découvrez cette série d'articles sur la façon dont le menu déroulant a été mis en œuvre (par nul autre que le développeur en chef de Prixing lui-même!).


Réponse originale:

Adam Powell et Richard Fulcher en parlent à 49:47 - 52:50 dans la conférence Google I / O intitulée "Navigation dans Android".

Pour résumer leur réponse, à la date de cette publication, le menu de navigation coulissant ne fait pas officiellement partie de la norme de conception des applications Android. Comme vous l'avez probablement découvert, il n'y a actuellement pas de support natif pour cette fonctionnalité, mais il a été question d'en faire un ajout à une prochaine révision du package de support.

En ce qui concerne les applications YouTube et G +, il semble étrange qu'elles se comportent différemment. Ma meilleure supposition est que la raison pour laquelle l'application YouTube fixe la position de la barre d'action est,

  1. L'une des options de navigation les plus importantes pour les utilisateurs utilisant l'application YouTube est la recherche, qui est effectuée dans la SearchViewbarre d'actions. Il serait judicieux de rendre la barre d'actions statique à cet égard, car cela permettrait à l'utilisateur de toujours avoir la possibilité de rechercher de nouvelles vidéos.

  2. L'application G + utilise un ViewPagerpour afficher son contenu, donc rendre le menu déroulant spécifique au contenu de la mise en page (c'est-à-dire tout ce qui se trouve sous la barre d'action) n'aurait pas beaucoup de sens. Le balayage est censé fournir un moyen de naviguer entre les pages, pas un moyen de navigation globale. C'est peut-être pourquoi ils ont décidé de le faire différemment dans l'application G + que dans l'application YouTube.

    Sur une autre note, consultez l'application Google Play pour une autre version du "menu déroulant" (lorsque vous êtes sur la page la plus à gauche, balayez vers la gauche et un menu déroulant "demi-page" apparaîtra).

Vous avez raison en ce que ce comportement n'est pas très cohérent, mais il ne semble pas qu'il y ait un consensus à 100% au sein de l'équipe Android sur la façon dont ce comportement doit être mis en œuvre pour le moment. Je ne serais pas surpris si à l'avenir les applications étaient mises à jour afin que la navigation dans les deux applications soit identique (ils semblaient très désireux de rendre la navigation cohérente dans toutes les applications conçues par Google dans le discours).

Alex Lockwood
la source
73
Prixing, Evernote et Spotify ont tous de très grandes équipes écrivant leurs applications.Je suis le PDG de Prixing, et je voudrais préciser que nous n'avons qu'un seul vrai développeur Android (mais un très talentueux, Cyril Mottier)
EricLarch
Avec la version 13 du package de support Android (mai 2013), il existe DrawerLayout pour créer un tiroir de navigation qui peut être tiré depuis le bord d'une fenêtre. Et maintenant, le tiroir de navigation est un modèle de conception. developer.android.com/tools/extras/support-library.html
Wubao Li
bien que NavigationDrawer soit présent dans la V4, il a besoin d'ActionBar qui n'est pas encore fourni dans la V4, donc pas en mesure de l'utiliser dans les applications ayant un niveau d'API inférieur à 11.
Nayanesh Gupte
1
@NayAneshGupte, vous pouvez toujours utiliser ActionBarSherlock pour utiliser ActionBar sous le niveau d'API 11.
tasomaniac
Il semble qu'il n'y ait aucun moyen d'introduire un retard artificiel si vous voulez que l'animation de fermeture soit fluide?
theblang
15

Tout récemment, j'ai bifurqué un projet Github actuel appelé "RibbonMenu" et l'ai édité pour répondre à mes besoins:

https://github.com/jaredsburrows/RibbonMenu

Quel est le but

  • Facilité d'accès: permet un accès facile à un menu qui se glisse dans et hors
  • Facilité de mise en œuvre: mettez à jour le même écran en utilisant une quantité minimale de code
  • Indépendance: ne nécessite pas de bibliothèques de support telles que ActionBarSherlock
  • Personnalisation: changement facile des couleurs et des menus

Quoi de neuf

  • Modification de l'animation coulissante pour correspondre aux applications Facebook et Google+
  • ActionBar standard ajouté (vous pouvez choisir d'utiliser ActionBarSherlock)
  • Menuitem utilisé pour ouvrir le menu
  • Ajout de la possibilité de mettre à jour ListView sur l'activité principale
  • Ajout de 2 ListViews au menu, similaire aux applications Facebook et Google+
  • Ajout d'une AutoCompleteTextView et d'un bouton pour afficher des exemples de mise en œuvre
  • Ajout d'une méthode pour permettre aux utilisateurs d'appuyer sur le «bouton de retour» pour masquer le menu lorsqu'il est ouvert
  • Permet aux utilisateurs d'interagir avec l'arrière-plan (ListView principal) et le menu en même temps contrairement aux applications Facebook et Google+!

ActionBar avec menu sorti

ActionBar avec menu sorti

ActionBar avec Menu sorti et recherche sélectionnée

ActionBar avec Menu sorti et recherche sélectionnée

Jared Burrows
la source
5

Il existe une excellente mise en œuvre NavigationDrawerqui suit les directives de conception de matériaux de Google (et compatible jusqu'à l'API 10) - La bibliothèque MaterialDrawer (lien vers GitHub) . Au moment de la rédaction de ce rapport, en mai 2017, il était activement pris en charge.

Il est disponible dans le référentiel Maven Central . Configuration de la dépendance Gradle:

compile 'com.mikepenz:materialdrawer:5.9.1'

Configuration de la dépendance Maven:

<dependency>
    <groupId>com.mikepenz</groupId>
    <artifactId>materialdrawer</artifactId>
    <version>5.9.1</version>
</dependency>

entrez la description de l'image ici entrez la description de l'image ici

naXa
la source
@lmiguelvargasf comment imaginez-vous adapter un projet GitHub dans la réponse?! Veuillez partager vos idées.
naXa
2

Personnellement, j'aime l' navigationDrawerapplication officielle de Google Drive. Cela fonctionne et fonctionne très bien. Je suis d'accord que le tiroir de navigation ne doit pas déplacer la barre d'action car c'est le point clé pour ouvrir et fermer le tiroir de navigation.

Si vous essayez toujours d'obtenir ce comportement, j'ai récemment créé un projet appelé SherlockNavigationDraweret comme vous pouvez vous y attendre, l'implémentation du tiroir de navigation avecActionBarSherlock et fonctionne pour les appareils pré Honeycomb. Vérifie ça:

SherlockNavigationDrawer github

Nicolas Jafelle
la source