Ящик навигации (Google+ и YouTube)

Кто-нибудь знает, как реализовать скользящее меню, например, некоторые из лучших приложений сегодня?

Другое переполнение стека questions не было ответов на то, как это сделать, поэтому я пытаюсь собрать как можно больше информации, чтобы помочь другим. Все приложения, о которых я упоминал ниже, отлично выполняют реализацию меню слайдов.

1. Google Plus (по состоянию на 7/7/12)

Google+ slide out menu screenshot

Вы можете перейти только с первого экрана на второй экран, щелкнув логотип G + в верхнем левом углу. Обратите внимание, что весь экран перемещается из его положения и подталкивается к правой стороне экрана (включая панель действий). Чтобы вернуться к первому экрану, вы можете либо сдвинуть правую сторону обратно в фокус, либо снова щелкнуть значок G +.

2. YouTube (по состоянию на 7/7/12)

YouTube slide out menu screenshot

Вы можете перейти с первого экрана на второй экран двумя способами. Либо нажмите логотип YouTube в левом верхнем углу, либо вы можете использовать жестом салфетки, чтобы переместить его вправо. Это уже отличается от приложения G+. Во-вторых, вы можете видеть, что панель действий остается помещенной (в отличие от G +). Наконец, чтобы вернуть исходный экран, он работает так же, как G +.

Ответ 1

Редактировать # 3:

Шаблон навигационного ящика официально описан в документации на Android!

enter image description here Ознакомьтесь со следующими ссылками:

  • Документы по дизайну можно найти здесь.
  • Документы разработчика можно найти здесь.

Изменить # 2:

Роман Нурик (разработчик дизайна Android в Google) подтвердил, что рекомендуемое поведение - не перемещать панель действий при открытии ящика (например, приложение YouTube). Смотрите сообщение Google+.

Изменить # 1:

Я ответил на этот вопрос некоторое время назад, но я снова хочу подчеркнуть, что Prixing имеет лучшее меню для вылета... далеко. Это абсолютно красиво, идеально гладко, и это позорит Facebook, Google+ и YouTube. EverNote тоже хорош... но все же не такой совершенный, как Prixing. Отметьте эту серию сообщений о том, как было реализовано всплывающее меню (не кто иной, как главный разработчик Prixing!).


Исходный ответ:

Адам Пауэлл и Ричард Фулчер рассказывают об этом в 49:47 - 52:50 в разговоре ввода-вывода Google под названием "Навигация в Android".

Подводя итог их ответам, с момента публикации этого меню меню навигации по слайду официально не входит в стандарт дизайна приложений для Android. Как вы, вероятно, обнаружили, в настоящее время нет встроенной поддержки этой функции, но были разговоры о том, чтобы сделать это дополнением к предстоящей ревизии пакета поддержки.

Что касается приложений YouTube и G +, кажется странным, что они ведут себя по-другому. Мое предположение заключается в том, что причина, по которой приложение YouTube фиксирует положение панели действий,

  • Одним из наиболее важных навигационных параметров для пользователей, использующих приложение YouTube, является поиск, который выполняется в SearchView на панели действий. Было бы разумно сделать статическую панель действий в этом отношении, поскольку она позволит пользователю всегда иметь возможность искать новые видеоролики.

  • Приложение G + использует ViewPager для отображения своего контента, поэтому создание меню вывода, специфичного для содержимого макета (т.е. всего под панелью действий), не имеет большого смысла. Предполагается, что Swiping обеспечивает средство навигации между страницами, а не средство глобальной навигации. Возможно, поэтому они решили сделать это по-другому в приложении G +, чем в приложении YouTube.

    В другой заметке посмотрите приложение Google Play для другой версии "выпадающего меню" (когда вы находитесь на самой левой странице, проведите пальцем влево и вытащите, появится меню "половина страницы" ).

Вы правы в том, что это не очень последовательное поведение, но не похоже, что в команде Android существует 100% -ное согласие относительно того, как это поведение должно быть реализовано. Я не удивлюсь, если в будущем приложения будут обновлены, так что навигация в обоих приложениях будет идентичной (они, похоже, очень заинтересованы в том, чтобы сделать навигацию совместимой во всех приложениях Google в разговоре).

Ответ 2

Совсем недавно я разветкил текущий проект Github под названием "RibbonMenu" и отредактировал его в соответствии со своими потребностями:

https://github.com/jaredsburrows/RibbonMenu

Какая цель

  • Простота доступа: Позволяет легко получить доступ к меню, которое перемещается и выезжает
  • Простота реализации: обновите один и тот же экран с минимальным количеством кода
  • Независимость: не требует поддержки библиотек, таких как ActionBarSherlock
  • Настройка: легко менять цвета и меню

Что нового

  • Изменена скользящая анимация для соответствия приложениям Facebook и Google+.
  • Добавлен стандартный ActionBar (вы можете использовать ActionBarSherlock)
  • Используется menuitem для открытия меню
  • Добавлена ​​возможность обновления ListView на главной операции
  • В меню добавлено 2 списка ListView, похожих на Facebook и приложения Google+.
  • Добавлен AutoCompleteTextView и кнопка, чтобы показать примеры реализации
  • Добавлен метод, позволяющий пользователям нажать кнопку "Назад", чтобы скрыть меню, когда оно открыто.
  • Позволяет пользователям взаимодействовать с фоном (основной ListView) и меню в то же время, в отличие от приложений Facebook и Google+.

ActionBar с выводом меню

ActionBar with Menu out

ActionBar с выводом меню и поиском

ActionBar with Menu out and search selected

Ответ 3

Существует отличная реализация NavigationDrawer, которая следует за Руководством по дизайну материалов Google (и совместимым с API 10) - Библиотека MaterialDrawer (ссылка на GitHub). На момент написания мая 2017 года он активно поддерживался.

Он доступен в Maven Central repo. Gradle настройка зависимостей:

compile 'com.mikepenz:materialdrawer:5.9.1'

Настройка зависимости Maven:

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

enter image description hereenter image description here

Ответ 4

Лично мне нравится navigationDrawer в официальном приложении Google Диска. Он просто работает и отлично работает. Я согласен с тем, что ящик навигации не должен перемещать панель действий, потому что это ключевой момент для открытия и закрытия навигационного ящика.

Если вы все еще пытаетесь получить это поведение, я недавно создал проект Called SherlockNavigationDrawer, и, как вы можете ожидать, это реализация навигационного ящика с помощью ActionBarSherlock и работает для устройств с предварительной сотой. Проверьте это:

SherlockNavigationDrawer github

Ответ 5

Я знаю, что это старый вопрос, но самым последним ответом является использование Android Support Design library, которая сделает вашу жизнь легкой.