В чем разница между библиотекой SlidingMenu и Android Navigation Drawer?

Библиотека SlidingMenu — отличная сторонняя библиотека, и я уже давно ей пользуюсь. Теперь я знаю, что Android предоставляет новый шаблон навигации с помощью Navigation Drawer. Похоже на скользящее меню. Так есть ли кто-нибудь, кто уже использует эти два? В чем разница и каковы плюсы и минусы? Большое спасибо.


person XWang    schedule 29.05.2013    source источник


Ответы (4)


SlidingMenuбиблиотека — это сторонний API, который использует RelativeLayout внутри. Основным преимуществом является настройка в соответствии с вашими требованиями. Ваши макеты должны быть основаны на группе просмотра, к сожалению, это сводит на нет <merge> оптимизации.

Navigation Drawer доступен в библиотеке поддержки Android, он использует < href="http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html">DrawerLayout внутри. Основным преимуществом является улучшенная производительность.

person Arun C    schedule 29.05.2013
comment
Navigation Drawer — это лучший способ сделать это сейчас, поскольку Google делает его стандартом и предоставляет большую поддержку для этого. - person Arun C; 21.06.2013
comment
В библиотеке SlidingMenu есть потрясающие образцы с адаптивным интерфейсом, я ищу то же самое в Navigation Drawer! Я планирую перенести образцы SlidingMenu в Navigation Drawer :) - person LOG_TAG; 26.08.2013
comment
@TCA Похоже, что нет способа плавно закрыть его без искусственной задержки. - person theblang; 04.09.2014

Они также имеют различные визуальные эффекты. SlidingMenu выглядит как горизонтальная прокрутка. Сдвинув его внутрь, вы вытолкнете основной контент наружу.

Плюсы:

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

Минусы:

  • Вы можете управлять только тенью бокового меню

Navigation Drawer / Drawer Layout выглядит как дополнительный вид верхнего уровня в макете фрейма. Если его сдвинуть, основное содержимое будет скрыто.
Плюсы:

  • Если вы используете библиотеку поддержки v4, то она уже есть.
  • Вы можете управлять как тенью бокового меню, так и скрывать основное содержимое с помощью setScrimColor, например, когда ящик открыт, альфа-слой с исчезновением появится над основным содержимым. Это хорошо для визуального разделения содержимого и меню, особенно когда они имеют одинаковый цвет.

Минусы:

  • Его можно разместить только ниже ActionBar
  • Для сенсорного режима нет установщика, и по умолчанию вы можете использовать только сенсорный режим поля. Выполнение полноэкранного сенсорного режима (например, Youtube) требует много работа
person inmyth    schedule 05.11.2013

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

person Nicolas Jafelle    schedule 29.05.2013
comment
Ящик навигации можно использовать с левой или правой стороны и даже с обеих сторон одновременно с разными видами. Я уже так использую. вот сообщение в блоге с дополнительной информацией: onsoftwareandstuff.com/2013/ 19/06/ - person spatialist; 19.07.2013
comment
навигационному ящику действительно нужны образцы, такие как у SlidingMenu! Мы можем начать портировать его на панель навигации!! - person LOG_TAG; 26.08.2013
comment
могу ли я использовать активность вместо фрагментов? Я означает, что я хочу перейти к классу активности, когда я нажимаю на элемент. Я искал много примеров, но в большинстве примеров используются фрагменты вместо активности - person learner; 21.06.2016

Вы уже сами это сказали. Скользящее меню является третьей стороной. Навигационный ящик является официальным. Оба имеют одну и ту же цель, но сторонние библиотеки могут реализовывать ее немного по-разному, в зависимости от того, какую из них вы используете.

person Neoh    schedule 29.05.2013