Слайд в стиле Android для Facebook - PullRequest
281 голосов
/ 28 декабря 2011

Новое приложение Facebook и его навигация так круты.Я просто пытался увидеть, как это может быть воспроизведено в моем приложении.

Кто-нибудь знает, как этого достичь?

enter image description here

При нажатии на верхнюю левую кнопку открывается слайд страницы и отображается следующий экран:

enter image description here

YouTube Video

Ответы [ 25 ]

176 голосов
/ 30 декабря 2011

Я сам поиграл с этим, и лучший способ, который я смог найти, - это использовать FrameLayout и положить пользовательский HorizontalScrollView (HSV) поверх меню. Внутри HSV находятся ваши приложения Views, , но - прозрачный View в качестве первого дочернего элемента. Это означает, что когда HSV имеет нулевое смещение прокрутки, меню будет отображаться (и все равно будет удивительно активным).

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

Код здесь, и две нижние кнопки (называемые HorzScrollWithListMenu и HorzScrollWithImageMenu) в действии Launch показывают лучшие меню, которые я мог придумать:

Демо-версия скользящего меню Android

Снимок экрана с эмулятора (средняя прокрутка):

Screenshot from emulator (mid-scroll)

Снимок экрана с устройства (полная прокрутка). Обратите внимание, что мой значок не такой широкий, как значок меню Facebook, поэтому вид меню и вид приложения не совпадают.

Screenshot from device (full-scroll)

37 голосов
/ 19 марта 2012

В этом проекте библиотеки я реализовал слайд-навигацию в стиле Facebook.

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

Внутри репозитория вы можете найти демо-проект с описанием использования библиотеки lib.реализовать Facebook-подобную навигацию. Вот короткое видео с записью демонстрационного проекта .

Также эта библиотека должна быть совместима с этим шаблоном ActionBar, потому что она основана на транзакциях операций и TranslateAnimations (не транзакциях фрагментов и пользовательских представлениях).

Сейчас самая большая проблема заключается в том, чтобы заставить его хорошо работать для приложения, которое поддерживает как портретный, так и ландшафтный режим.Если у вас есть какие-либо отзывы, пожалуйста, предоставьте их через github.

Всего наилучшего,Alex

24 голосов
/ 03 июня 2012

Вот другая lib и, кажется, лучшая на мой взгляд. Я не писал это ..

UPDATE:

Мне кажется, этот код лучше всего работает и перемещает всю панель действий, как в приложении G +.

Как Google удалось это сделать? Слайд ActionBar в приложении Android

22 голосов
/ 29 декабря 2011

Я думаю, что приложение facebook не написано в нативном коде (я имею в виду нативный код, используя макеты в Android), но они использовали для него webview и использовали некоторые библиотеки javascript ui, такие как sencha .Это может быть легко достигнуто с помощью Sencha Framework.

enter image description here

20 голосов
/ 10 января 2013

Вот еще одна (очень хорошая) библиотека с открытым исходным кодом!

Хорошей особенностью этого является то, что он легко интегрируется с ActionBarSherlock.

Вот ссылка на проект github

Вот Google Play ссылка для скачивания

17 голосов
/ 16 июля 2012

Я только что реализовал аналогичное представление для моего собственного проекта.Вы можете проверить это здесь

Вот пример экрана приложения на основе библиотеки, которую я написал: ActionsContentView Example

Этот пользовательский вид легко использовать как элемент XMLраскладка.Вот пример:

    <shared.ui.actionscontentview.ActionsContentView
      android:id="@+id/content"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:actions_layout="@layout/actions"
      app:content_layout="@layout/content" />

У вас возникнут вопросы по использованию библиотеки ActionsContentView. Я могу написать небольшую статью в проектах Wiki.

Некоторые преимущества этой библиотеки:

  • возможность просмотра слайдов одним касанием
  • легко настроить размер панели действий в XML
  • поддержка всех версий Android SDK, начиная с 2.0 и выше

Существует одно ограничение:

  • все виды горизонтальной прокрутки не будут работать в границах этого вида

С уважением, Стивен

16 голосов
/ 16 мая 2013

В версии 13 пакета поддержки Android (май 2013 г.) есть DrawerLayout для создания навигационного ящика, который можно вытянуть из края окна. И навигационный ящик теперь является образцом дизайна.

Библиотека поддержки v4

шаблон дизайна навигационного ящика

15 голосов
/ 18 июля 2012

Сделал обзор существующей реализации и превратил ее в проект библиотеки плюс пример приложения. Также добавлен синтаксический анализ XML, а также автоопределение, возможно, существующей панели действий, поэтому она работает как со встроенной, так и со вспомогательной панелью действий, такой как ActionBarSherlock.

Этот также сдвигает панель действий!

Все это - библиотечный проект вместе с примером приложения, который описан на Скользящее меню для Android, такое как приложения Google и Facebook . Спасибо scirocco за первоначальную идею и код!

SlideMenu on Gingerbread SlideMenu on ICS with ActionBar

10 голосов
/ 02 января 2013

Это просто и элегантно: https://github.com/akotoe/android-slide-out-menu.git

Фотоснимок:

enter image description here

10 голосов
/ 17 февраля 2013

Я думаю, что библиотека не упоминается:

jfeinstein10 / SlidingMenu

github url:https://github.com/jfeinstein10/SlidingMenu

  • отлично работает с панелью действий ActionBarSherlock , которая помогает в обратной совместимости !
  • Поддержка правый слайд и нетолько скользить через кнопку!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...