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>
