page.title=Navigation Drawer
page.tags="DrawerLayout","SlidingPaneLayout"
@jd:body


<a class="notice-developers" href="{@docRoot}training/implementing-navigation/nav-drawer.html">
  <div>
    <h3>Developer Docs</h3>
    <p>Creating a Navigation Drawer</p>
  </div>
</a>


<p>The navigation drawer is a panel that transitions in from the left edge of the screen and
displays the app’s main navigation options.</p> 


<h4>Displaying the navigation drawer</h4>

<p>The user can bring the navigation drawer onto the screen by swiping from the left edge of the
screen or by touching the application icon on the action bar.</p>

<p>As the navigation drawer expands, it overlays the content but not the action bar. When the
drawer is fully extended, the action bar adjusts its content by replacing the current action
bar title with the app name and removing all actions that are contextual to the view underneath
the navigation drawer. The overflow menu with the standard action items for Settings and Help
remains visible.</p>

<img src="{@docRoot}design/media/navigation_drawer_overview.png">
<div class="figure-caption">
  The user can open the drawer panel by touching the navigation drawer indicator.
</div>

<p>Because they are transient, navigation drawers make views less cluttered. You can also use
them at deeper levels in the navigation hierarchy, allowing users to switch to your app's most
important screens from anywhere in the app.</p>

<img src="{@docRoot}design/media/navigation_drawer_open_from_lower.png">
<div class="figure-caption">
  Open the drawer from anywhere in your app by swiping from the left edge of the screen.
</div>


<h4>Dismissing the navigation drawer</h4>

<p> When the navigation drawer is expanded, the user can dismiss it in one of four ways: </p>
<ul>
  <li>Touching the content outside the navigation drawer</li>
  <li>Swiping to the left anywhere on the screen (including edge swipe from right)</li>
  <li>Touching the app icon/title in the action bar</li>
  <li>Pressing Back</li>
</ul>


<h2 id="WhenToUse"> When to Use the Navigation Drawer </h2>

<p> The navigation drawer is not a general replacement for top-level navigation via spinners
or tabs. The structure of your app should guide your choice of which pattern to use for
top-level switching. For more information on top-level switching mechanisms, see the
<a href="{@docRoot}design/patterns/app-structure.html">Application Structure</a> design pattern.</p>
<p> Here are some examples of where navigation drawers work best:</p>

<h4>More than 3 top-level views</h4>
<p> Navigation drawers are great for displaying a large number of navigation targets
concurrently. Use the navigation drawer if you have more than 3 unique top-level views.
If not, use fixed tabs for top-level organization to ease discovery and interaction.</p>

<h4>Cross-navigation from lower levels</h4>
<p> If your app requires cross-navigating between lower-level screens, consider using the
navigation drawer. Because it is accessible from anywhere in the app, the drawer enables
efficient navigation from lower-level screens to other important places in your app.</p>

<img src="{@docRoot}design/media/navigation_drawer_cross_nav.png">
<div class="figure-caption">
  The navigation drawer makes cross-navigation at lower levels possible.
</div>


<h4>Deep navigation branches</h4>
<p> If you have particularly deep branches, navigating to the top-level of your app can become
repetitive and cumbersome with Up and Back alone. Since navigation drawers are accessible from
anywhere in the app, navigation up to the top level is faster and more efficient.</p>

<img src="{@docRoot}design/media/navigation_drawer_quick_to_top.png">
<div class="figure-caption">
  The navigation drawer allows for quick jumps to the top-level of your app, removing the need
  for repetitive Back or Up sequences.
</div>


<h2 id="Hubs">Navigation Hubs</h2>

<p>The navigation drawer is a reflection of your app’s structure and displays its major
navigation hubs. Think of navigation hubs as those places in your app that a user will want
to visit frequently or use as a jumping-off point to other parts of the app. 
At a minimum, the navigation hubs are the top-level views, since they correspond to your app’s
major functional areas.</p>
<p> If your app’s structure is deep, you can add screens from lower levels that your users will
likely visit often and make those navigation hubs as well.</p>

<img src="{@docRoot}design/media/navigation_drawer_navigation_hubs.png">
<div class="figure-caption">
  The navigation drawer contains all of your app's navigation hubs. Include your top level
  screens as well as important lower-level screens.
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-8">
  <p> To facilitate access to the navigation drawer on navigation hubs, all screens that
  correspond to an entry in your navigation drawer should show the navigation drawer indicator
  next to the application icon in the action bar. Touching the app icon causes the navigation
  drawer to slide in from the left. </p>
  <p> All other lower-level screens show the traditional Up indicator next to the application
  icon. The drawer is still accessible with an edge-swipe, but is not featured in the action bar.</p>
  </div>
  <div class="layout-content-col span-5">
    <img src="{@docRoot}design/media/navigation_drawer_indicator_big.png">
    <div class="figure-caption">
    App icon with navigation drawer indicator.
  </div>
  </div>
</div>


<h2 id="Content">Content of the Navigation Drawer</h2>

<p> Keep the content of the navigation drawer focused on app navigation. Expose the navigation
hubs of your app as list items inside the navigation drawer - one item per row. 
    
<div class="layout-content-row">
  <div class="layout-content-col span-8">
  <h4>Titles, icons, and counters</h4>
  <p> You can structure navigation targets by adding titles. The titles are not interactive,
  but just organize navigation targets into functional topics. If you have many navigation
  targets, use titles to orient the user within the drawer.</p>
  <p> Navigation targets can have optional leading icons as well as trailing counters. Use
  the counters to inform users about a changed state of data in the corresponding view.</p>
  </div>
  <div class="layout-content-col span-5">
  <img src="{@docRoot}design/media/navigation_drawer_titles_icons.png">
  <div class="figure-caption">
    Use titles and icons to organize your drawer. 
  </div>
  </div>
</div>

<div class="layout-content-row">
  <div class="layout-content-col span-8">
  <img src="{@docRoot}design/media/navigation_drawer_collapse.png">
  <div class="figure-caption">
    Collapsible navigation items are split. Use the left side for navigation and the right
    to collapse and expand items. 
    </div>
  </div>
  <div class="layout-content-col span-5">
  <h4>Collapsible navigation items</h4>
  <p>If you have many views with some subordinate to others, consider collapsing them into one
  expandable item to conserve space. 
  The parent in the navigation drawer then turns into a split item. The left side allows
  navigation to the parent item’s view, and the right side collapses or expands the list of
  child items. </p>
  <p> At launch, the initial state of the collapsible items is up to you. As a rule, all
  top-level view entries of the navigation drawer should be visible. If you have many collapsible
  items, consider collapsing all items to allow the user to see the top-level views in their
  entirety.</p>
  <p> When the user opens the drawer from a lower-level screen, expand the associated branch
  of the top-level view to give a stronger sense of place and highlight navigation opportunities
  close to the user’s current
  location in the app.</p>
  </div>
</div>


<h2 id="ActionBar">Navigation Drawers and Action Bars</h2>

<p> When the user expands the navigation drawer, the task focus switches to selecting an item
from the drawer. Because the drawer does not overlay the action bar, users may not realize that
the items in the action bar do not pertain to the navigation drawer. </p>
<p> To reduce confusion, adjust the content of the action bar to the following, once the drawer
is fully expanded:</p>
<ul>
  <li>App icon</li>
  <li>App name</li>
  <li>Remove actions from the action bar that are contextual to the underlying view (such as
  Create new, Refresh). You may retain actions with global scope, such as “Search”.</li>
  <li>Overflow menu with expected navigation targets, such as Settings and Help.</li>
</ul>

<img src="{@docRoot}design/media/navigation_drawer_open_overflow.png">
<div class="figure-caption">
  Clean up the action bar when the drawer is fully expanded. Remove actions that are not needed
  and display your app's name in the title area. 
</div>

<h4>Actions</h4>
<div class="layout-content-row">
  <div class="layout-content-col span-6">
  <img src="{@docRoot}design/media/navigation_drawer_nav_and_actions.png">
    <div class="figure-caption">
    Keep actions on the right side of the action bar and in the overflow
  </div>
  </div>
  <div class="layout-content-col span-6">
  <p> Don’t place actions in the navigation drawer. Actions belong in the action bar, and the
  user expects to see them there. Keep in mind that not all applications use the navigation
  drawer pattern. It may be tempting to expose all your app’s capabilities in a single place,
  but keep the bigger picture in mind. Place your actions where all apps display them.</p>
  </div>
</div>
<div class="layout-content-row">
  <div class="layout-content-col span-6">
  <p> This also applies to common navigation targets, such as access to Help or the app’s
  Settings. As per style guide convention Help and Settings are always located in the action
  overflow.</p>
  </div>
  <div class="layout-content-col span-6">
  <img src="{@docRoot}design/media/navigation_drawer_settings_help.png">
    <div class="figure-caption">
    Keep Help and Settings in the overflow.
  </div>
  </div>
</div>


<h4>Contextual action bars</h4>
<p> Sometimes the user will be in a state where a contextual action bar (CAB) appears instead
of the app’s action bar. This typically happens when the user selects text or selects multiple
items after a press-and-hold gesture. While the CAB is visible, you should still allow the
user to open the navigation drawer using an edge swipe. However, replace the CAB with the
standard action bar while the navigation drawer is open. When the user dismisses the drawer,
re-display the CAB.</p>

<img src="{@docRoot}design/media/navigation_drawer_CAB.png">
<div class="figure-caption">
  Hide contextual action bars while the drawer is visible. 
</div>

<p>If the user navigates away from a view with selected content, deselect the content before
before navigating to the new view.</p>


<h2 id="Interaction">Interaction Details</h2>

<h4>Introduce the user to the drawer at first use</h4>
<p> Upon first launch of your app, introduce the user to the navigation drawer by
automatically opening it. This ensures that users know about the navigation drawer and prompts
them to learn about the structure of your app by exploring its content. Continue showing the
drawer upon subsequent launches until the user actively expands the navigation drawer manually.
Once you know that the user understands how to open the drawer, launch the app with the
navigation drawer closed. </p>

<img src="{@docRoot}design/media/navigation_drawer_first_run.png">
<div class="figure-caption">
  At first use, show the navigation drawer automatically to help the user learn the
  functionality and structure of your app.
</div>

<h4>Give the user a quick peek</h4>
<p> If the user touches the very left edge of the screen (within 20 dp from the left), have the
drawer peek out as soon as the finger makes contact with the display. This promotes accidental
discovery and provides richer feedback. </p>

<img src="{@docRoot}design/media/navigation_drawer_peek.png">
<div class="figure-caption">
  The navigation drawer peeks out when the user touches the very left edge of the screen.
</div>

<h4>Highlights</h4>
<p> When you open the navigation drawer from a screen that is represented inside the drawer,
highlight its entry in the drawer. Vice versa, if you open the drawer from a screen that is
not listed in the drawer, none of the items of the drawer should be highlighted.</p>


<h2 id="ImpactOnNav">Impact of Drawer on Overall App Navigation</h2>

<p>The navigation drawer is an alternative to other top-level navigation patterns. To make apps
with navigation drawers work consistently with apps that use a tab or spinner pattern, remember
that all navigation requirements for system Back and Up apply.</p>
<p>Pay special attention to the following situations:</p>

<h4>System Back at the top level of the app</h4>
<p>Touching System Back at the app’s top level never opens the navigation drawer. Instead,
System Back behaves according to the navigation rules for the top level, such as navigating
to the previous app within the task or navigating to the Home screen.</p>

<img src="{@docRoot}design/media/navigation_drawer_top_out.png">
<div class="figure-caption">
  System Back does not show the drawer, but behaves according to the navigation rules for
  the top level.
</div>

<h4>System Back after cross navigation to lower hierarchy levels</h4>
<p>If the user navigates to a lower hierarchy screen from the navigation drawer and the screen
has a direct parent, then the Back stack is reset and Back points to the target screen’s parent.
This Back behavior is the same as when a user navigates into an app from a notification.</p>

<img src="{@docRoot}design/media/navigation_drawer_reset_backstack.png">
<div class="figure-caption">
  Reset the Back stack if your lower-level navigation target has direct parents.
</div>


<h2 id="Style">Style</h2>

<p>The width of the navigation drawer depends on the content you want to display, but should be
between a minimum of 240 dp and a maximum of 320 dp. The height of the individual line items
should not fall below 48 dp. See the layout guideline below for recommendations on padding and
spacing.</p>

<img src="{@docRoot}design/media/navigation_drawer_layout.png">
<div class="figure-caption">
  Layout guidelines for the navigation drawer.
</div>


<p>Pick the drawer background to best match your app’s theme. See the following examples
for a Holo light and a Holo dark themed drawer.</p>

<img src="{@docRoot}design/media/navigation_drawer_holo_dark_light.png">
<div class="figure-caption">
  Navigation drawers in Holo light and Holo dark themed apps.
</div>


<h2 id="Checklist">Navigation Drawer Checklist</h2>

<p>Even if you already support a similar navigation drawer, update your drawer to this
pattern to make sure that:</p>
<ul>
  <li>The action bar remains in place and adjusts its content.</li>
  <li>Your navigation drawer overlays the content.</li>
  <li>Any view represented in the drawer has a navigation drawer indicator in its action bar
  that allows the drawer to be opened by touching the app icon.</li>
  <li>You take advantage of the new visual drawer transition.</li>
  <li>Any view not represented in the drawer maintains the traditional Up indicator in its action bar.</li>
  <li>You stay in sync with the general navigation patterns for Up and Back.</li>
</ul>

