Szuflada nawigacyjna (Google + VS. YouTube)

Czy ktoś wie jak zaimplementować przesuwne menu jak niektóre z najlepszych aplikacji dzisiejszych czasów?

Other Stack Overflow questions haven 't had any answer on how to do this, so I' m trying to get as much info to help out others. Wszystkie aplikacje, o których wspominam poniżej, wykonują świetną robotę implementując menu slajdów.

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

Zrzut ekranu z menu Google+

Możesz przejść z pierwszego ekranu do drugiego ekranu, klikając logo G+ w górnej części ekranu lewy róg. Zauważ, że cały ekran przesuwa się z jego pozycji I get jest popchnięty do prawej strony ekranu (łącznie z paskiem akcji). Aby wrócić do pierwszego ekranu, możesz przesunąć prawą stronę z powrotem w ostrość lub ponownie kliknąć ikonę G+.

2. YouTube (stan na 7/7/12)

Zrzut ekranu z menu YouTube

Możesz przejść z pierwszego ekranu do drugiego ekranu za pomocą dwóch metod. Albo kliknij logo YouTube w lewym górnym rogu, albo możesz użyć gestu machnięcia, aby przenieść je do prawo. To już różni się od aplikacji G+. Po drugie, widać, że pasek akcji pozostaje ustawiony (w przeciwieństwie do G+). Wreszcie, aby odzyskać oryginalny ekran, działa tak jak G+.

Author: EGHDK, 2012-07-07

5 answers

Edit #3:

Schemat szuflady nawigacyjnej jest oficjalnie opisany w dokumentacji Androida!

Tutaj wpisz opis obrazkaSprawdź następujące linki:

  • dokumenty projektowe można znaleźć proszę..
  • dokumenty programistyczne można znaleźć proszę..

Edit #2:

Roman Nurik (Android design engineer w Google) potwierdził, że zalecanym zachowaniem jest nie przesuwanie paska akcji podczas otwierania szuflady (jak w aplikacji YouTube). Zobacz to Google + post .

Edit # 1:

Odpowiedziałem na to pytanie jakiś czas temu, ale wracam ponownie podkreślić, że Prixing ma najlepsze menu fly-out tam... zdecydowanie . Jest absolutnie piękny, idealnie gładki i wstydzi Facebook, Google+ i YouTube. EverNote też jest całkiem niezły... ale nadal nie tak doskonały jak Prixing. Zobacz też Ta seria postów o tym, jak wylot menu zostało zaimplementowane (od nikogo innego jak główny programista w Prixingu!).


Oryginalna Odpowiedź:

Adam Powell i Richard Fulcher rozmawiają o tym na 49:47 - 52:50 W rozmowie Google I / O zatytułowanej "Nawigacja w Androidzie".

Podsumowując ich odpowiedź, od daty tego wpisu wysuwane menu nawigacyjne jest , a nie oficjalnie częścią Standardu projektowania aplikacji na Androida. Jak zapewne odkryłeś, obecnie nie ma natywne wsparcie dla tej funkcji, ale mówiono o uczynieniu tego dodatkiem do nadchodzącej wersji pakietu wsparcia.

Jeśli chodzi o aplikacje YouTube i G+, wydaje się dziwne, że zachowują się inaczej. Domyślam się, że powodem, dla którego Aplikacja YouTube naprawia pozycję paska akcji jest,

  1. Jedną z najważniejszych opcji nawigacyjnych dla użytkowników korzystających z aplikacji YouTube jest wyszukiwanie, które odbywa się w SearchView na pasku akcji. To sprawi, że sens, aby pasek akcji stał się statyczny w tym zakresie, ponieważ pozwoliłby użytkownikowi zawsze mieć możliwość wyszukiwania nowych filmów.

  2. Aplikacja G+ używa ViewPager do wyświetlania swojej zawartości, więc wysuwanie menu specyficznego dla zawartości układu (tj. wszystkiego pod paskiem akcji) nie miałoby większego sensu. Przesunięcie ma zapewnić sposób nawigacji między stronami, a nie sposób globalnej nawigacji. Może dlatego postanowili zrobić to inaczej w aplikacji G+ niż w aplikacji YouTube.

    Na inną uwagę, sprawdź aplikację Google Play dla innej wersji " pull out menu "(gdy jesteś na lewej stronie najbardziej, przesuń w lewo i wyciągnąć," pół-strona " menu pojawi).

Masz rację, że to nie jest zbyt konsekwentne zachowanie, ale wydaje się, że nie ma 100% konsensusu w zespole Androida co do tego, jak to zachowanie powinno być wdrożone. Nie zdziwiłbym się, gdyby w przyszłości aplikacje są aktualizowane tak, aby nawigacja w obu aplikacjach była identyczna(wydawali się bardzo chętni, aby nawigacja była spójna we wszystkich aplikacjach stworzonych przez Google w rozmowie).

 152
Author: Alex Lockwood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-27 04:22:31

Niedawno otworzyłem obecny projekt Githuba o nazwie "RibbonMenu" i edytowałem go, aby dopasować go do moich potrzeb:

Https://github.com/jaredsburrows/RibbonMenu

Jaki jest cel

  • łatwość dostępu: umożliwia łatwy dostęp do menu, które wsuwa się i wychodzi
  • łatwość implementacji: zaktualizuj ten sam ekran przy użyciu minimalnej ilości kodu
  • niezależność: nie wymaga bibliotek wsparcia, takich jak ActionBarSherlock
  • Personalizacja: łatwa do zmiany kolory i menu

Co nowego

  • zmieniono animację przesuwania, aby pasowała do aplikacji Facebook i Google+
  • Dodano standardowy pasek ActionBar (możesz użyć ActionBarSherlock)
  • używany menuitem do otwarcia Menu
  • Dodano możliwość aktualizacji ListView na głównej aktywności
  • Dodano 2 ListViews do Menu, podobne do aplikacji Facebook i Google+.]}
  • Dodano AutoCompleteTextView i przycisk, aby pokazać przykłady implementacja
  • Dodano metodę pozwalającą użytkownikom na naciśnięcie przycisku "Wstecz", aby ukryć menu, gdy jest otwarte
  • pozwala użytkownikom na interakcję z tłem (main ListView)i menu w tym samym czasie, w przeciwieństwie do aplikacji Facebook i Google+!

ActionBar with Menu out

Pasek czynności z menu out

ActionBar with menu out and search selected

ActionBar z menu out i wyszukiwanie zaznaczone

 15
Author: Jared Burrows,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-19 07:06:06

Istnieje świetna implementacja NavigationDrawer, która jest zgodna z wytycznymi Google Material Design (i zgodna z API 10) - Biblioteka MaterialDrawer (link do GitHub). W chwili pisania tego tekstu, Maj 2017, jest aktywnie wspierany.

Jest dostępny w Maven Central repo . Gradle dependency setup:
compile 'com.mikepenz:materialdrawer:5.9.1'

Konfiguracja zależności Mavena:

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

Tutaj wpisz opis obrazkaTutaj wpisz opis obrazka

 5
Author: naXa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-13 08:32:09

Wiem, że to stare pytanie, ale najbardziej aktualną odpowiedzią jest użycie Android Support Design library, która ułatwi Ci życie.

 2
Author: Sotti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-24 10:59:23

Osobiście lubię navigationDrawer w Google Drive official app. To po prostu działa i działa świetnie. Zgadzam się, że szuflada nawigacyjna nie powinna przesuwać paska akcji, ponieważ jest kluczowym punktem, aby otworzyć i zamknąć szufladę nawigacyjną.

Jeśli nadal próbujesz uzyskać takie zachowanie, niedawno stworzyłem projekt o nazwie SherlockNavigationDrawer i jak można się spodziewać jest implementacja szuflady nawigacyjnej z {[2] } i działa dla urządzeń pre Honeycomb. Sprawdź to:

SherlockNavigationDrawer github

 2
Author: Nicolas Jafelle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-30 13:55:24