导航抽屉(Google+与YouTube)

有谁知道如何实现像今天的一些顶级应用程序滑动菜单?

其他堆栈溢出问题还没有任何答案如何做到这一点,所以我试图收集尽可能多的信息来帮助别人。 我在下面提到的所有应用程序在实现幻灯片菜单方面做得非常好。

1. Google Plus(截至2012年7月7日)

Google+滑出菜单屏幕截图

您只能点击左上angular的G +徽标,从第一个屏幕移动到第二个屏幕。 注意,整个屏幕从它的位置移动并被轻推到屏幕的右侧(包括操作栏)。 要返回到第一个屏幕,您可以将右侧滑回焦点,也可以再次单击G +图标。

2. YouTube(截至2012年7月7日)

YouTube滑出菜单截图

你可以使用两种方法从第一个屏幕到第二个屏幕。 您可以点击左上angular的YouTube徽标,也可以使用滑动手势将其移至右侧。 这已经不同于G +应用程序。 其次,你可以看到操作栏保持不变(与G +不同)。 最后,要获得原始屏幕,就像G +一样工作。

编辑#3:

导航抽屉模式在Android文档中正式描述!

在这里输入图像描述 看看下面的链接:

  • devise文档可以在这里find。
  • 开发人员文档可以在这里find。

编辑#2:

Google的Androiddevise工程师Roman Nurik已经确认,推荐的行为是在打开抽屉时不要移动操作栏(如YouTube应用程序)。 看到这个Google+的post 。


编辑#1:

前段时间我回答了这个问题,但是我回头再强调一下, Prix​​ing有最好的飞出菜单 。 这绝对是美丽的,非常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应用修复操作栏位置的原因是,

  1. 使用YouTube应用程序的用户最重要的导航选项之一是search,这是在操作栏的SearchView中执行的。 在这方面使动作栏保持静态是有意义的,因为它可以让用户总是有selectsearch新的video。

  2. 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

带菜单的ActionBar

select菜单和search的ActionBar

选择菜单和搜索的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