407

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

其他 Stack Overflow问题还没有关于如何做到这一点的任何答案,所以我正在尝试收集尽可能多的信息来帮助其他人。我在下面提到的所有应用程序在实现滑动菜单方面做得很好。

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

Google+ 滑出菜单截图

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

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

YouTube 滑出菜单截图

您可以使用两种方法从第一个屏幕转到第二个屏幕。单击左上角的 YouTube 徽标,或者您可以使用滑动手势将其向右移动。这已经与 G+ 应用不同了。其次,您可以看到操作栏保持不变(与 G+ 不同)。最后,要恢复原始屏幕,它就像 G+ 一样工作。

4

5 回答 5

154

编辑#3:

Navigation Drawer 模式在 Android 文档中有正式描述!

在此处输入图像描述 查看以下链接:

  • 设计文档可以在这里找到。
  • 开发者文档可以在这里找到。

编辑#2:

Roman Nurik(Google 的一名 Android 设计工程师)已确认建议的行为是在打开抽屉(如 YouTube 应用程序)时不要移动操作栏。请参阅此Google+ 帖子


编辑#1:

我刚才回答了这个问题,但我回来再次强调Prixing 拥有目前为止最好的弹出式菜单。它绝对漂亮,完美流畅,让 Facebook、Google+ 和 YouTube 感到羞耻。EverNote 也很不错……但仍不如 Prixing 完美。查看有关如何实现弹出菜单的这一系列帖子(来自 Prixing 的首席开发人员本人!)。


原答案:

Adam Powell 和 Richard Fulcher 在49:47 - 52:50在名为“Android 导航”的 Google I/O 演讲中讨论了这个问题。

总结他们的回答,截至本文发布之日,滑出式导航菜单尚未正式成为 Android 应用程序设计标准的一部分。正如您可能已经发现的那样,目前没有对此功能的本地支持,但有人谈论将其添加到即将发布的支持包修订版中。

关于 YouTube 和 G+ 应用程序,它们的行为不同似乎很奇怪。我最好的猜测是 YouTube 应用程序固定操作栏位置的原因是,

  1. 对于使用 YouTube 应用程序的用户来说,最重要的导航选项之一是搜索,它SearchView在操作栏中执行。在这方面将操作栏设为静态是有意义的,因为它允许用户始终可以选择搜索新视频。

  2. G+ 应用程序使用 aViewPager来显示其内容,因此使拉出菜单特定于布局内容(即操作栏下的所有内容)没有多大意义。滑动应该提供一种在页面之间导航的方法,而不是一种全局导航的方法。这可能就是他们决定在 G+ 应用中采用与在 YouTube 应用中不同的方式的原因。

    另一方面,请查看 Google Play 应用程序以获取另一个版本的“拉出菜单”(当您位于最左侧页面时,向左滑动并拉出,将出现“半页”菜单)。

你是对的,这不是非常一致的行为,但 Android 团队内部似乎还没有就如何实现这种行为达成 100% 的共识。如果将来更新应用程序以使两个应用程序中的导航相同,我不会感到惊讶(他们似乎非常热衷于在谈话中使所有 Google 制造的应用程序的导航保持一致)。

于 2012-07-08T00:48:53.123 回答
15

就在最近,我分叉了一个名为“RibbonMenu”的当前 Github 项目,并对其进行了编辑以满足我的需要:

https://github.com/jaredsburrows/RibbonMenu

目的是什么

  • 易于访问:允许轻松访问滑入和滑出的菜单
  • 易于实施:使用最少的代码更新同一屏幕
  • 独立性:不需要ActionBarSherlock等支持库
  • 定制:易于更改颜色和菜单

什么是新的

  • 更改了滑动动画以匹配 Facebook 和 Google+ 应用
  • 添加了标准的ActionBar(可以选择使用ActionBarSherlock)
  • 使用 menuitem 打开菜单
  • 添加了在主 Activity 上更新 ListView 的功能
  • 在菜单中添加了 2 个列表视图,类似于 Facebook 和 Google+ 应用程序
  • 添加了 AutoCompleteTextView 和 Button 以显示实现示例
  • 添加了允许用户在打开菜单时点击“后退按钮”以隐藏菜单的方法
  • 与 Facebook 和 Google+ 应用程序不同,允许用户同时与背景(主 ListView)和菜单进行交互!

带有菜单的操作栏

带有菜单的操作栏

选择了菜单和搜索的操作栏

选择了菜单和搜索的操作栏

于 2012-12-19T07:06:06.920 回答
5

有一个很好的实现,NavigationDrawer它遵循 Google Material Design Guidelines(并且兼容到 API 10)- MaterialDrawer 库(链接到 GitHub)。截至 2017 年 5 月撰写本文时,它得到了积极支持。

它在Maven Central repo中可用。Gradle 依赖设置:

compile 'com.mikepenz:materialdrawer:5.9.1'

Maven依赖设置:

<dependency>
    <groupId>com.mikepenz</groupId>
    <artifactId>materialdrawer</artifactId>
    <version>5.9.1</version>
</dependency>

在此处输入图像描述 在此处输入图像描述

于 2015-04-27T11:47:31.347 回答
2

我个人喜欢navigationDrawerGoogle Drive 官方应用中的。它只是工作并且工作得很好。我同意导航抽屉不应该移动操作栏,因为它是打开和关闭导航抽屉的关键点。

如果您仍在尝试获得这种行为,我最近创建了一个名为 Called 的项目SherlockNavigationDrawer,正如您所料,Navigation Drawer 的实现与ActionBarSherlock预 Honeycomb 设备一起工作。核实:

SherlockNavigationDrawer github

于 2013-05-29T14:21:38.793 回答
2

我知道这是一个老问题,但最新的答案是使用Android 支持设计库,这将使您的生活变得轻松。

于 2015-07-24T10:59:23.900 回答