navigation drawer是一个面板,它从屏幕的左边缘滑入用来展示app的主要导航选项。
用户可以通过滑动屏幕左侧或者点击action bar上的相关的icon来打开navigation drawer。
当navigation drawer滑入屏幕时,它会覆盖屏幕上原来的内容(但action bar除外)。当navigation drawer滑入完成,action bar会用app name来代替当前的action bar title并且移除与navigation drawer下面的view的上下文相关的action选项。那个覆盖按钮和帮助按钮是可见的(没有被移除)。
用户可以通过点击navigation drawe指示器来打开navigation drawe面板
因为navigation drawer是短暂的,它使得视图更加简单。当然你也可以在导航层次结构的更深层次使用它们,从而允许用户从任何位置切换到应用程重要的screen。
从任意位置打开navigation drawer
当navigation drawer已经完全展开,用户可以通过以下几种方式来隐藏navigation drawer:
navigation drawer并不是通过spinner 或者 tab实现的一般的顶级导航栏的替换者。你的应用程序的结构应指导你选择顶级视图切换的模式。更多关于顶级视图切换机制的信息,看Application Structure。
下面是几个比较适合使用navigation drawer的场景:
超过3个顶层视图
对于要同时显示大量的导航时navigation drawer是相当有用的。建议当有多于三个独一无二的顶层视图时使用navigation drawer;否则,建议使用固定的标签作为顶层导航会更容易被发现和交互。
从低级别跨至navigation drawer
假如你的app要求从低级别screen之间跨至导航,那就可以考虑使用navigation drawer。因为它可以从App的任何地方访问到,navigation drawe能够高效地使从一个低级层次的screen导航至另外一个重要的地方(即迅速的从一个模块的screen到另一个模块的screen)。navigation drawer使得在低级层次视图间进行导航成为了可能
假如你的app有很深的分支结构的话,你想仅仅通过UP按钮和BACK按钮回退到顶级层次视图那将会是一件重复而且麻烦的事情。由于在App的任何地方都可以访问到navigation drawer,所以导航至顶层视图很快捷。
navigation drawer允许你快捷跳转至顶层视图
navigation drawer反应了你的App结构,并且显示你主要的导航项目。navigation hubs是用户从App的一个地方跳转至另一个地方需要频繁访问的地方。至少可以说,navigation hubs是一个丁层视图,因为它相当于你的App的重要功能区。
假如你的App视图纵向很深,你可以在经常访问的底层视图上添加screen使得它们也可以访问navigation hubs。
navigation drawer包含App所有的navigation hubs,包含顶层视图和一些重要的低层视图。
为了方便在navigation hubs上访问到navigation drawer,所有的screen上在action bar中都应该在App icon的旁边有一个navigation drawer 指示器对应着一个到navigation drawer的入口。只要点击这个App icon将会使得navigation drawer从屏幕左侧滑出。
所有其他低级别的screens也可以在App icon旁边展示传统的UP指示器,这个drawer也是可访问到的,但是在action bar中不推荐这么干。
App icon with navigation drawer indicator
Keep 在navigation drawer(导航抽屉)上navigation hubs(导航集线器)以列表项的形式进行展现 · 一个条码占一行。
每个导航目标(navigation target)的icon和counters(计数器)是可选的,计数器用来通知用户导航条目相对应的视图的数据变化状态。
当用户展开navigation drawer,任务焦点就会切换至从drawer选择一项。因为drawer不会覆盖action bar,用户可能不会意识到action bar中的items不从属于navigation drawer。
为了减少混淆,一旦drawer被展开,请调整action bar中的以下内容:
navigation drawer的宽度取决于你要显示的内容,但是它有一个极限值=240dp和极大值=320dp。每一行的高度不低于48dp。其他的一些间距看下图指示:
navigation drawer 的布局准则
选择navigation drawer的背景应该和你的App的主题相匹配。下面示例为Holo Light和Holo dark主题的drawer。
Holo light的navig drawer和Holo dark的App
原文链接:http://developer.android.com/design/patterns/navigation-drawer.html