page.title=Action Bar
page.tags="actionbar","navigation"
@jd:body

<img src="{@docRoot}design/media/action_bar_pattern_overview.png">

<a class="notice-developers" href="{@docRoot}guide/topics/ui/actionbar.html">
  <div>
    <h3>Developer Docs</h3>
    <p>Action Bar</p>
  </div>
</a>


<p>The <em>action bar</em> is a dedicated piece of real estate at the top of each screen that is generally persistent throughout the app.</p>
<p><strong>It provides several key functions</strong>:</p>
<ul>
  <li>Makes important actions prominent and accessible in a predictable way (such as <em>New</em> or <em>Search</em>).</li>
  <li>Supports consistent navigation and view switching within apps.</li>
  <li>Reduces clutter by providing an action overflow for rarely used actions.</li>
  <li>Provides a dedicated space for giving your app an identity.</li>
</ul>
<p>If you're new to writing Android apps, note that the action bar is one of the most important design elements you can implement. Following the guidelines described here will go a long way toward making your app's interface consistent with the core Android apps.</p>
<h2 id="organization">General Organization</h2>

<p>The action bar is split into four different functional areas that apply to most apps.</p>
<img src="{@docRoot}design/media/action_bar_basics.png">

<div class="layout-content-row">
  <div class="layout-content-col span-7 with-callouts">

    <ol>
      <li class="value-1"><h4>App icon</h4>
        <p>

The app icon establishes your app's identity. It can be replaced with a different logo or branding
if you wish.
Important: If the app is currently not displaying the top-level screen, be sure to display the Up
caret to the left of the app icon, so the user can navigate up the hierarchy. For more discussion of
Up navigation, see the <a href="{@docRoot}design/patterns/navigation.html">Navigation</a> pattern.
        </p>

<img src="{@docRoot}design/media/action_bar_pattern_up_app_icon.png">
<div class="figure-caption">
  App icon with and without "up" affordance.
</div>

      </li>
    </ol>

  </div>
  <div class="layout-content-col span-6 with-callouts">

    <ol>
      <li class="value-2"><h4>View control</h4>
        <p>

If your app displays data in different views, this segment of the action bar allows users to switch
views. Examples of view-switching controls are drop-down menus or tab controls. For more information on view-switching, see the <a href="{@docRoot}design/patterns/app-structure.html">App Structure</a> pattern.

        </p>
        <p>

If your app doesn't support different views, you can also use this space to display non-interactive
content, such as an app title or longer branding information.

        </p>
      </li>
      <li class="value-3"><h4>Action buttons</h4>
        <p>

Show the most important actions of your app in the actions section. Actions that don't fit in the
action bar are moved automatically to the action overflow. Long-press on an icon to view the action's name.

        </p>
      </li>
      <li class="value-4"><h4>Action overflow</h4>
        <p>

Move less often used actions to the action overflow.

        </p>
      </li>
    </ol>
  </div>
</div>

<h2 id="adapting-rotation">Adapting to Rotation and Different Screen Sizes</h2>

<p>One of the most important UI issues to consider when creating an app is how to adjust to screen
rotation on different screen sizes.</p>
<p>You can adapt to such changes by using <em>split action bars</em>, which allow you to distribute action bar
content across multiple bars located below the main action bar or at the bottom of the screen.</p>

<img src="{@docRoot}design/media/action_bar_pattern_rotation.png">
<!-- <div class="figure-caption">
  Split action bar showing action buttons at the bottom of the screen in vertical orientation.
</div> -->

<h2 id="considerations-split-action-bars">Layout Considerations for Split Action Bars</h2>

<div class="layout-content-row">
  <div class="layout-content-col span-8 with-callouts">

<p>When splitting up content across multiple action bars, you generally have three possible locations
for action bar content:</p>
<ol>
<li><strong>Main action bar</strong></li>
<li><strong>Top bar</strong></li>
<li><strong>Bottom bar</strong></li>
</ol>
<p>If the user can navigate up the hierarchy from a given screen, the main action bar contains the up
caret, at a minimum.</p>
<p>To allow the user to quickly switch between the views your app provides, use tabs or a spinner in
the top bar.</p>
<p>To display actions and, if necessary, the action overflow, use the bottom bar.</p>

  </div>
  <div class="layout-content-col span-5">

    <img src="{@docRoot}design/media/action_bar_pattern_considerations.png">

  </div>
</div>

<h2 id="ActionButtons">Action Buttons</h2>
<p><em>Action buttons</em> on the action bar surface your app's most important activities. Think about which
buttons will get used most often, and order them accordingly. Depending on available screen real
estate, the system shows your most important actions as action buttons and moves the rest to the
action overflow. The action bar should show only those actions that are available to the user. If an action is unavailable in the current context, hide it. Do not show it as disabled.</p>

<img src="{@docRoot}design/media/action_bar_pattern_action_icons.png">
<div class="figure-caption">
  A sampling of action buttons used throughout the Gmail application.
</div>

<p>For guidance on prioritizing actions, use the FIT scheme.</p>

<div class="layout-content-row">
  <div class="layout-content-col span-4">

<p><strong>F &mdash; Frequent</strong></p>
<ul>
<li>Will people use this action at least 7 out of 10 times they visit the screen?</li>
<li>Will they typically use it several times in a row?</li>
<li>Would taking an extra step every time truly be burdensome?</li>
</ul>

  </div>
  <div class="layout-content-col span-4">

<p><strong>I &mdash; Important</strong></p>
<ul>
<li>Do you want everyone to discover this action because it's especially cool or a selling point?</li>
<li>Is it something that needs to be effortless in the rare cases it's needed?</li>
</ul>

  </div>
  <div class="layout-content-col span-4">

<p><strong>T &mdash; Typical</strong></p>
<ul>
<li>Is it typically presented as a first-class action in similar apps?</li>
<li>Given the context, would people be surprised if it were buried in the action overflow?</li>
</ul>

  </div>
</div>

<p>If either F, I, or T apply, then it's appropriate for the action bar. Otherwise, it belongs in the
action overflow.</p>

<p>

Pre-defined glyphs should be used for certain common actions such as "refresh" and "share." The
download link below provides a package with icons that are scaled for various screen densities and
are suitable for use with the Holo Light and Holo Dark themes. The package also includes unstyled
icons that you can modify to match your theme, in addition to Adobe&reg; Illustrator&reg; source
files for further customization.

</p>
<p>

<a onClick="_gaq.push(['_trackEvent', 'Design', 'Download', 'Action Bar Icons (@actionbar page)']);"
   href="{@docRoot}downloads/design/Android_Design_Icons_20131106.zip">Download the Action Bar Icon Pack</a>

</p>

<div class="layout-content-row">
  <div class="layout-content-col span-6">

<h4>Action overflow</h4>
<p>The action overflow in the action bar provides access to your app's less frequently used actions.
The overflow icon only appears on phones that have no menu hardware keys. Phones with menu keys
display the action overflow when the user presses the key.</p>

  </div>
  <div class="layout-content-col span-7">

    <img src="{@docRoot}design/media/action_bar_pattern_overflow.png">
    <div class="figure-caption">
      Action overflow is pinned to the right side.
    </div>

  </div>
</div>

<p>How many actions will fit in the main action bar? Action bar capacity is controlled by the following
rules:</p>
<ul>
<li>Action buttons in the main action bar may not occupy more than 50% of the bar's width. Action
  buttons on bottom action bars can use the entire width.</li>
<li>The screen width in density-independent pixels
  (<acronym title="Density-independent pixels. One dp is one pixel on a 160 dpi screen.">dp</acronym>)
  determine the number of items that will fit in the main action bar:<ul>
<li>smaller than 360 dp = 2 icons</li>
<li>360-499 dp = 3 icons</li>
<li>500-599 dp = 4 icons</li>
<li>600 dp and larger = 5 icons</li>
</ul>
</li>
</ul>

<img src="{@docRoot}design/media/action_bar_pattern_table.png">
<div class="figure-caption">
  In the above table "o" denotes an action bar item and "=" an overflow icon.
</div>

<h4>Sharing data</h4>
<p>Whenever your app permits sharing of data, such as images or movie clips, use a <em>share action
provider</em> in your action bar. The share action provider is designed to speed up sharing by
displaying the most recently used sharing service next to a spinner button that contains other
sharing options.</p>

<img src="{@docRoot}design/media/action_bar_pattern_share_pack.png">
<div class="figure-caption">
  The Gallery app's share action provider with extended spinner for additional sharing options.
</div>

<h2 id="contextual">Contextual Action Bars</h2>

<p>A <em>contextual action bar (CAB)</em> is a temporary action bar that overlays the app's action bar for the
duration of a particular sub-task. CABs are most typically used for tasks that involve acting on
selected data or text.</p>

<img src="{@docRoot}design/media/action_bar_cab.png">
<div class="figure-caption">
  Contextual action bar in Browser and Gmail
</div>

<p>The selection CAB appears after a long press on a selectable data item triggers selection mode.</p>
<p><strong>From here the user can</strong>:</p>
<ul>
<li>Select additional elements by touching them.</li>
<li>Trigger an action from the CAB that applies to all selected data items. The CAB then
   automatically dismisses itself.</li>
<li>Dismiss the CAB via the navigation bar's Back button or the CAB's checkmark button. This removes
   the CAB along with all selection highlights.</li>
</ul>
<p>Use CABs whenever you allow the user to select data via long press. You can control the action
content of a CAB in order to insert the actions you would like the user to be able to perform.</p>
<p>For more information, refer to the <a href="{@docRoot}design/patterns/selection.html">Selection
pattern</a>.</p>



<h2 id="checklist">Action Bar Checklist</h2>

<p>When planning your split action bars, ask yourself questions like these:</p>
<h4>How important is view navigation to the task?</h4>
<p>If view navigation is very important to your app, use tabs (for fastest view-switching) or spinners.</p>
<h4>Which of the app's actions need to be consistently available directly from the action bar, and which can be moved to the action overflow?</h4>
<p>Use the <acronym title="Frequent, Important or Typical">FIT</acronym> scheme to decide if actions
are displayed at the top-level or can be moved to the action overflow. If the number of top-level
actions exceeds the capacity of the main action bar, display them separately in a bottom action bar.</p>
<h4>What else is important enough to warrant continuous display?</h4>
<p>Sometimes it is important to display contextual information for your app that's always visible.
Examples are the number of unread messages in a messaging inbox view or the Now Playing information
in a music player. Carefully plan which important information you would like to display and
structure your action bars accordingly.</p>