导航抽屉(Google+与YouTube)
有谁知道如何实现像今天的一些顶级应用程序滑动菜单?
其他堆栈溢出问题还没有任何答案如何做到这一点,所以我试图收集尽可能多的信息来帮助别人。 我在下面提到的所有应用程序在实现幻灯片菜单方面做得非常好。
1. Google Plus(截至2012年7月7日)
您只能点击左上angular的G +徽标,从第一个屏幕移动到第二个屏幕。 注意,整个屏幕从它的位置移动并被轻推到屏幕的右侧(包括操作栏)。 要返回到第一个屏幕,您可以将右侧滑回焦点,也可以再次单击G +图标。
2. YouTube(截至2012年7月7日)
你可以使用两种方法从第一个屏幕到第二个屏幕。 您可以点击左上angular的YouTube徽标,也可以使用滑动手势将其移至右侧。 这已经不同于G +应用程序。 其次,你可以看到操作栏保持不变(与G +不同)。 最后,要获得原始屏幕,就像G +一样工作。
编辑#3:
导航抽屉模式在Android文档中正式描述!
看看下面的链接:
- devise文档可以在这里find。
- 开发人员文档可以在这里find。
编辑#2:
Google的Androiddevise工程师Roman Nurik已经确认,推荐的行为是在打开抽屉时不要移动操作栏(如YouTube应用程序)。 看到这个Google+的post 。
编辑#1:
前段时间我回答了这个问题,但是我回头再强调一下, Prixing有最好的飞出菜单 。 这绝对是美丽的,非常stream畅,它让Facebook,Google +和YouTube感到羞耻。 EverNote也相当不错…但还不如Prixing完美。 看看这个系列的post是关于如何实现popup菜单的(从Prixing自己的首席开发者那里得到的)。
原始答案:
Adam Powell和Richard Fulcher在49:47 – 52:50的Google I / O讨论中谈到了这个问题,名为“Android in Navigation”。
总结他们的回答,截至本文发布date,滑出式导航菜单并不是 Android应用程序devise标准的正式组成部分。 正如你可能已经发现的那样,目前还没有对这个function的本地支持,但是有人说这是对即将到来的支持包的补充。
对于YouTube和G +应用程序,它们的行为有所不同,这似乎很奇怪。 我最好的猜测是,YouTube应用修复操作栏位置的原因是,
-
使用YouTube应用程序的用户最重要的导航选项之一是search,这是在操作栏的
SearchView
中执行的。 在这方面使动作栏保持静态是有意义的,因为它可以让用户总是有selectsearch新的video。 -
G +应用程序使用
ViewPager
来显示它的内容,所以制作特定于布局内容(即操作栏下的所有内容)的拉出菜单没有多大意义。 滑动应该提供页面之间的导航手段,而不是全球导航的手段。 这可能就是为什么他们决定在G +应用程序中以不同于YouTube应用程序的方式执行此操作的原因。另外请注意,在Google Play应用程序中查看另一个版本的“拉出菜单”(当您位于最左侧页面时,向左滑动并拉出,“半页”菜单将会出现)。
你说得对,这不是一个非常一致的行为,但似乎并没有在Android团队内达成100%的一致意见,应该如何实现这个行为。 如果将来应用程序被更新以便两个应用程序中的导航都是相同的(他们似乎非常热衷于在讲话中使所有Google制作的应用程序的导航保持一致),我不会感到惊讶。
就在最近,我分叉了一个名为“RibbonMenu”的Github项目,并对其进行编辑以适应我的需求:
https://github.com/jaredsburrows/RibbonMenu
目的是什么?
- 轻松访问:可轻松访问滑入和滑出的菜单
- 易于实施:使用最less量的代码更新相同的屏幕
- 独立性:不需要支持库,如ActionBarSherlock
- 定制:易于更改颜色和菜单
什么是新的
- 更改了滑动animation以匹配Facebook和Google+应用程序
- 添加标准的ActionBar(你可以select使用ActionBarSherlock)
- 使用菜单项打开菜单
- 增加了在主Activity上更新ListView的function
- 向菜单添加了2个ListViews,类似于Facebook和Google+应用程序
- 添加了一个AutoCompleteTextView和一个button,以显示实现的例子
- 新增的方法允许用户打开“后退button”以隐藏菜单
- 允许用户与Facebook和Google+应用程序不同,与后台(主ListView)和菜单同时进行交互!
带菜单的ActionBar
select菜单和search的ActionBar
NavigationDrawer
有很好的实现,遵循Google Material Design Guidelines(和API 10兼容) – MaterialDrawer库(链接到GitHub) 。 截至写作时间,2017年5月,它得到了积极的支持。
它在Maven中央仓库中可用。 Gradle依赖设置:
compile 'com.mikepenz:materialdrawer:5.9.1'
Maven依赖设置:
<dependency> <groupId>com.mikepenz</groupId> <artifactId>materialdrawer</artifactId> <version>5.9.1</version> </dependency>
我知道这是一个老问题,但最新的答案是使用Android支持devise库 ,这将使您的生活变得轻松。
我个人喜欢Google Drive官方应用中的navigationDrawer
。 它只是工作,工作很好。 我同意导航抽屉不应该移动操作栏,因为是打开和closures导航抽屉的关键点。
如果你仍然在试图获得这种行为,我最近创build了一个叫做SherlockNavigationDrawer
的项目,你可能期望的是带有ActionBarSherlock
的Navigation Drawer的实现,并且适用于预蜂窝设备。 核实:
SherlockNavigationDrawer github