Новое приложение Facebook и его навигация так круты. Я просто пытался увидеть, как это может быть воспроизведено в моем приложении.
У кого-нибудь есть подсказка, как этого можно добиться?
При нажатии на верхнюю левую кнопку отображается слайд страницы и следующий экран:
android
facebook
android-side-navigation
Харша М.В.
источник
источник
Ответы:
Я сам с этим поиграл, и лучший способ, который я смог найти, - это использовать FrameLayout и положить пользовательский HorizontalScrollView (HSV) поверх меню. Внутри HSV находятся ваши приложения Views, но есть прозрачный View как первый дочерний элемент. Это означает, что когда HSV имеет нулевое смещение прокрутки, меню будет отображаться на экране (и все равно будет удивительно активным).
Когда приложение запускается, мы прокручиваем HSV до смещения первого видимого приложения View, и когда мы хотим показать меню, мы прокручиваем назад, чтобы открыть меню через прозрачный View.
Код здесь, и две нижние кнопки (называемые HorzScrollWithListMenu и HorzScrollWithImageMenu) в действии Launch показывают лучшие меню, которые я мог придумать:
Android-слайд-меню демо
Снимок экрана с эмулятора (средняя прокрутка):
Скриншот с устройства (полная прокрутка). Обратите внимание, что мой значок не такой широкий, как значок меню Facebook, поэтому представление меню и представление «приложение» не выровнены.
источник
getDrawingCache()
ваши действия вне меню и создавая ImageView из растрового изображения. Затем вызовитеstartActivity(intent)
&overridePendingTransition(0, 0)
вonClick
методеClickListenerForScrolling
класса, чтобы немедленно показать новое действие и получить желаемый эффект.В этом проекте библиотеки я реализовал слайд-навигацию в стиле Facebook .
Вы можете легко встроить его в свое приложение, интерфейс и навигацию. Вам нужно будет реализовать только одно действие и один фрагмент, сообщить об этом библиотеке - и библиотека обеспечит все необходимые анимации и навигацию.
Внутри репозитория вы можете найти демо-проект, в котором рассказывается, как использовать lib для реализации навигации, подобной Facebook. Вот короткое видео с записью демо-проекта .
Также эта библиотека должна быть совместима с этим шаблоном ActionBar, потому что она основана на транзакциях операций и TranslateAnimations (не на транзакциях фрагментов и пользовательских представлениях).
В настоящее время основная проблема заключается в том, чтобы заставить его хорошо работать для приложений, которые поддерживают как портретный, так и ландшафтный режим. Если у вас есть какие-либо отзывы, пожалуйста, предоставьте их через github.
Всего наилучшего,
Алекс
источник
((MenuActivity) getActivity()).getSlideoutHelper().close(); startActivity(new Intent(getActivity(), MyActivity.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).putExtra("category", position));
Вот еще один библиотека и, кажется, лучшая на мой взгляд. Я не писал это ..
ОБНОВИТЬ:
Этот код, кажется, работает лучше всего для меня, и он перемещает всю панель действий, как приложение G +.
Как Google удалось это сделать? Слайд ActionBar в приложении Android
источник
Я думаю, что приложение facebook не написано в нативном коде (я имею в виду нативный код, используя макеты в Android), но они использовали для него webview и использовали некоторые библиотеки javascript ui, такие как sencha . Это может быть легко достигнуто с помощью Sencha Framework.
источник
Вот еще одна (очень хорошая) библиотека с открытым исходным кодом!
Хорошая особенность этого в том, что он легко интегрируется с ActionBarSherlock.
Вот ссылка на проект GitHub
Вот ссылка на скачивание Google Play
источник
Я только что реализовал аналогичное представление для моего собственного проекта. Вы можете проверить это здесь
Вот пример экрана приложения на основе библиотеки, которую я написал:
Это пользовательское представление легко использовать как элемент макета XML. Вот пример:
Если у вас возникнут какие-либо вопросы по использованию библиотеки ActionsContentView, я могу написать небольшую статью в проектах Wiki.
Некоторые преимущества этой библиотеки:
Есть одно ограничение:
С наилучшими пожеланиями, Стивен
источник
С версией 13 пакета поддержки Android (май 2013 г.) есть DrawerLayout для создания Навигационного Ящика, который можно вытянуть из края окна. И навигационный ящик - теперь образец дизайна.
библиотека поддержки v4
шаблон дизайна навигационного ящика
источник
Сделал обзор существующей реализации и превратил ее в проект библиотеки плюс пример приложения. Также добавлен синтаксический анализ XML, а также автоопределение, возможно, существующей панели действий, поэтому она работает как со встроенной, так и со вспомогательной панелью действий, такой как ActionBarSherlock.
Этот также сдвигает панель действий!
Все это - библиотечный проект вместе с примером приложения, который описан в «Скользящем меню для Android», как приложения Google и Facebook . Спасибо Scirocco за первоначальную идею и код!
источник
Это просто и элегантно: https://github.com/akotoe/android-slide-out-menu.git
Снимок:
источник
Я думаю, что библиотека не упоминается:
jfeinstein10 / SlidingMenu
github url:
https://github.com/jfeinstein10/SlidingMenu
источник
Пока не могу прокомментировать ответ, данный @Paul Grime, в любом случае я представил в его проекте github исправление проблемы с мерцанием ....
Я выложу исправление здесь, возможно, кому-то это нужно. Вам просто нужно добавить две строки кода. Первый ниже вызова anim.setAnimationListener:
И второй после вызова app.layout ():
Надеюсь это поможет :)
источник
Я реализовал это с AbsoluteLayout и простым контроллером слайдов, который перемещает представление в отрицательное смещение, чтобы скрыть.
Если кому-то интересно, могу почистить код / макет и выложить. Я знаю, что AbsoluteLayout устарела, но это была очень прямолинейная реализация. Вид слева / Вид справа, и, когда «открываешься скольжением», просто переместите вид слева от смещения -X на ширину устройства - все, что вы хотите показать на правом просмотре
источник
источник
Как часть моей общей библиотеки Android (ACL) я реализовал собственный SideBar. Основные преимущества:
Исходный код: https://github.com/serso/android-common/tree/master/views/src/main/java/org/solovyev/android/view/sidebar
Использование: https://github.com/serso/android-common/blob/master/samples/res/layout/acl_view_layout.xml
источник
Недавно я работал над версией моего скользящего меню. Он использует популярную Android-библиотеку J.Feinstein SlidingMenu.
Пожалуйста, проверьте исходный код на GitHub:
https://github.com/baruckis/Android-SlidingMenuImplementation
Загрузите приложение прямо на устройство, чтобы попробовать:
https://play.google.com/store/apps/details?id=com.baruckis.SlidingMenuImplementation
Код должен быть понятен из-за комментариев. Надеюсь это будет полезно! ;)
источник
Я нашел самый простой способ для этого и его работы. Используйте простой навигационный ящик и вызовите box.setdrawerListner () и используйте метод mainView.setX () в методе hookSlide ниже или скопируйте мой код.
XML-файл
Java-файл
Спасибо
источник
Я собираюсь сделать некоторые смелые догадки здесь ...
Я предполагаю, что у них есть макет, который представляет меню, которое не видно. При нажатии кнопки меню они анимируют макет / вид сверху, чтобы убрать его с дороги, и просто обеспечивают видимость макета меню. Я не думал о том, чтобы это вызывало какие-либо проблемы с z-индексами в представлениях или как они это контролируют.
источник
Android добавил навигационный ящик. Отослать это
ссылка на сайт
источник
Вот руководство по проектированию и разработке, найденное в официальной документации Android, без необходимости добавлять неофициальную внешнюю библиотеку. Подойдет только библиотека поддержки Android. Найдите ссылки здесь.
проектировать и развивать .
источник
Android-приложение Facebook возможно построено из фрагментов . Меню - это один фрагмент, а углубленное действие (лента новостей / события / друзья и т. Д.) - это другой фрагмент. В основном макет планшета «Master & Detail» на телефоне.
источник
Для информации: поскольку библиотека совместимости начинается с версии 1.6, а это приложение для Facebook также работает на устройствах с Android 1.5, это невозможно сделать с помощью фрагментов.
Это можно сделать следующим образом: создайте «базовое» действие BaseMenuActivity, в которое вы поместите всю логику для onItemClickListener для списка меню и определите 2 анимации («открыть» и «закрыть»). В конце / начале анимации вы показываете / скрываете макет BaseMenuActivity (назовем его menu_layout). Макет для этого действия прост, это только список с элементами + прозрачная часть справа от вашего списка. Эта часть будет кликабельной, и ее ширина будет равна ширине вашей кнопки перемещения. С этим вы сможете нажать на этот макет, чтобы запустить анимацию, чтобы content_layout скользил влево и занимал весь экран. Для каждого параметра (т. Е. Элемента списка меню) вы создаете «ContentActivity», которое расширяет BaseMenuActivity. Затем, когда вы нажимаете на элемент списка, вы запускаете ItemSelectedContentActivity с видимым меню (которое вы закроете, как только начнете свою деятельность). Макеты для каждого ContentActivity являются FrameLayout и включают в себя и. Вам просто нужно переместить content_layout и сделать menu_layout видимым, когда вы хотите.
Это способ сделать это, и я надеюсь, что я достаточно ясно.
источник
Я играл с этим последние несколько дней, и я придумал решение, которое довольно просто в конце концов, и которое работает до Honeycomb. Мое решение состояло в том, чтобы анимировать вид, который я хочу скользить (
FrameLayout
для меня), и прослушивать конец анимации (в какой момент сместить левую / правую позицию вида). Я вставил свое решение здесь: Как оживить перевод Viewисточник
После нескольких часов поиска я обнаружил, что решение Пола Грайма, вероятно, является лучшим. Но в нем слишком много функциональности. Так что это может быть трудно учиться для начинающих. Итак, я хотел бы представить свою реализацию, основанную на идее Пола, но она более проста и должна легко читаться.
реализация боковой панели меню с использованием кода Java без XML
источник
Я не видел ни одного удивительного SimonVT / android-menudrawer, упомянутого выше в ответах. Так вот ссылка
https://github.com/SimonVT/android-menudrawer
Его очень легко использовать, и вы можете положить его слева, справа, сверху или снизу. Очень хорошо документировано с примером кода и лицензией Apache 2.0.
источник
В июне 2012 года Google добавил «шаблоны» в плагин Eclipse ADT , и есть шаблон, называемый «поток основных / подробных данных», который делает именно это (на основе фрагментов)
источник