<!DOCTYPE html>
<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>

Android Design - Action Bar
    </title>
    <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
    <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic">
    <link rel="stylesheet" href="../static/yui-3.3.0-reset-min.css">
    <link rel="stylesheet" href="../static/default.css">

  </head>
  <body>

    <div id="page-container">

      <div id="page-header"><a href="../index.html">Android Design</a></div>

      <div id="main-row">

        <ul id="nav">

          <li class="nav-section">
            <div class="nav-section-header"><a href="../index.html">Get Started</a></div>
            <ul>
              <li><a href="../get-started/creative-vision.html">Creative Vision</a></li>
              <li><a href="../get-started/principles.html">Design Principles</a></li>
              <li><a href="../get-started/ui-overview.html">UI Overview</a></li>
            </ul>
          </li>

          <li class="nav-section">
            <div class="nav-section-header"><a href="../style/index.html">Style</a></div>
            <ul>
              <li><a href="../style/devices-displays.html">Devices and Displays</a></li>
              <li><a href="../style/themes.html">Themes</a></li>
              <li><a href="../style/touch-feedback.html">Touch Feedback</a></li>
              <li><a href="../style/metrics-grids.html">Metrics and Grids</a></li>
              <li><a href="../style/typography.html">Typography</a></li>
              <li><a href="../style/color.html">Color</a></li>
              <li><a href="../style/iconography.html">Iconography</a></li>
              <li><a href="../style/writing.html">Writing Style</a></li>
            </ul>
          </li>

          <li class="nav-section">
            <div class="nav-section-header"><a href="../patterns/index.html">Patterns</a></div>
            <ul>
              <li><a href="../patterns/new-4-0.html">New in Android 4.0</a></li>
              <li><a href="../patterns/gestures.html">Gestures</a></li>
              <li><a href="../patterns/app-structure.html">App Structure</a></li>
              <li><a href="../patterns/navigation.html">Navigation</a></li>
              <li><a href="../patterns/actionbar.html">Action Bar</a></li>
              <li><a href="../patterns/multi-pane-layouts.html">Multi-pane Layouts</a></li>
              <li><a href="../patterns/swipe-views.html">Swipe Views</a></li>
              <li><a href="../patterns/selection.html">Selection</a></li>
              <li><a href="../patterns/notifications.html">Notifications</a></li>
              <li><a href="../patterns/compatibility.html">Compatibility</a></li>
              <li><a href="../patterns/pure-android.html">Pure Android</a></li>
            </ul>
          </li>

          <li class="nav-section">
            <div class="nav-section-header"><a href="../building-blocks/index.html">Building Blocks</a></div>
            <ul>
              <li><a href="../building-blocks/tabs.html">Tabs</a></li>
              <li><a href="../building-blocks/lists.html">Lists</a></li>
              <li><a href="../building-blocks/grid-lists.html">Grid Lists</a></li>
              <li><a href="../building-blocks/scrolling.html">Scrolling</a></li>
              <li><a href="../building-blocks/spinners.html">Spinners</a></li>
              <li><a href="../building-blocks/buttons.html">Buttons</a></li>
              <li><a href="../building-blocks/text-fields.html">Text Fields</a></li>
              <li><a href="../building-blocks/seek-bars.html">Seek Bars</a></li>
              <li><a href="../building-blocks/progress.html">Progress &amp; Activity</a></li>
              <li><a href="../building-blocks/switches.html">Switches</a></li>
              <li><a href="../building-blocks/dialogs.html">Dialogs</a></li>
              <li><a href="../building-blocks/pickers.html">Pickers</a></li>
            </ul>
          </li>

          <li>
            <div id="back-dac-section"><a href="../../index.html">Developers</a></div>
          </li>

        </ul>

        <div id="content">

          
          <div class="layout-content-row content-header">
            <div class="layout-content-col span-9">
              <h2>Action Bar</h2>
            </div>
            <div class="paging-links layout-content-col span-4">
              <a href="#" class="prev-page-link">Previous</a>
              <a href="#" class="next-page-link">Next</a>
            </div>
          </div>
          

          

<img src="../static/content/action_bar_pattern_overview.png">

<p>The <em>action bar</em> is arguably the most important structural element of an Android app. It's a
dedicated piece of real estate at the top of each screen that is generally persistent throughout the
app.</p>
<p><strong>The main purpose of the action bar is to</strong>:</p>
<ul>
<li>Make important actions (such as <em>New</em> or <em>Search</em>, etc) prominent and accessible in a predictable
   way.</li>
<li>Support consistent navigation and view switching within apps.</li>
<li>Reduce clutter by providing an action overflow for rarely used actions.</li>
<li>Provide 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>General Organization</h2>
<p>The action bar is split into four different functional areas that apply to most apps.</p>
<img src="../static/content/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 "Navigation" pattern.

<div class="figure">
  <img src="../static/content/action_bar_pattern_up_app_icon.png">
  <div class="figure-caption">
    App icon with and without "up" affordance.
  </div>
</div>

        </p>
      </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. 

        </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.

        </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>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="../static/content/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>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-3">

    <img src="../static/content/action_bar_pattern_considerations.png">

  </div>
</div>

<h2>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="../static/content/action_bar_cab.png">
<div class="figure-caption">
  Contextual action bar shown 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 "Selection" pattern.</p>
<h2>Action Bar Elements</h2>
<h4>Tabs</h4>
<p><em>Tabs</em> display app views concurrently and make it easy to explore and switch between them. Use tabs
if you expect your users to switch views frequently.</p>

<img src="../static/content/tabs_youtube.png">

<p>There are two types of tabs: fixed and scrollable.</p>

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

<h4>Scrollable tabs</h4>
<p><em>Scrollable tabs</em> always take up the entire width of the bar, with the currently active view item in
the center, and therefore need to live in a dedicated bar. Scrollable tabs can themselves be
scrolled horizontally to bring more tabs into view.</p>
<p>Use scrollable tabs if you have a large number of views or if you're unsure how many views will be
displayed because your app inserts views dynamically (for example, open chats in a messaging app
that the user can navigate between). Scrollable tabs should always allow the user to navigate
between the views by swiping left or right on the content area as well as swiping the tabs
themselves.</p>

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

    <video width="400" class="with-shadow play-on-hover" autoplay>
      <source src="../static/content/tabs_scrolly.mp4" type="video/mp4">
      <source src="../static/content/tabs_scrolly.webm" type="video/webm">
      <source src="../static/content/tabs_scrolly.ogv" type="video/ogg">
    </video>
    <div class="figure-caption">
      Scrolling tabs in Android Market.
      <div class="video-instructions">&nbsp;</div>
    </div>

  </div>
</div>

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

<h4>Fixed tabs</h4>
<p><em>Fixed tabs</em> are always visible on the screen, and can't be moved out of the way like scrollable
tabs. Fixed tabs in the main action bar can move to the top bar when the screen orientation changes.</p>

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

    <img src="../static/content/action_bar_pattern_default_tabs.png">
    <div class="figure-caption">
      Default fixed tabs shown in Holo Dark &amp; Light.
    </div>

  </div>
</div>

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

<h4>Spinners</h4>
<p>A <em>spinner</em> is a drop-down menu that allows users to switch between views of your app. </p>
<p><strong>Use spinners rather than tabs in the main action bar if</strong>:</p>
<ul>
<li>You don't want to give up the vertical screen real estate for a dedicated tab bar.</li>
<li>You expect your app's users to switch views infrequently.</li>
</ul>

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

    <img src="../static/content/action_bar_pattern_spinner.png">
    <div class="figure-caption">
      Action bar spinner from Calendar application.
    </div>

  </div>
</div>

<h4>Action buttons</h4>
<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.</p>

<img src="../static/content/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>

<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="../static/content/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="../static/content/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="../static/content/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>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>



          
          <div class="layout-content-row content-footer">
            <div class="paging-links layout-content-col span-9">&nbsp;</div>
            <div class="paging-links layout-content-col span-4">
              <a href="#" class="prev-page-link">Previous</a>
              <a href="#" class="next-page-link">Next</a>
            </div>
          </div>
          
        </div>

      </div>

      <div id="page-footer">

        <p id="copyright">
          Except as noted, this content is licensed under
          <a href="http://creativecommons.org/licenses/by/2.5/">
          Creative Commons Attribution 2.5</a>.<br>
          For details and restrictions, see the
          <a href="http://developer.android.com/license.html">Content License</a>.
        </p>

        <p>
          <a href="http://www.android.com/terms.html">Site Terms of Service</a> &ndash;
          <a href="http://www.android.com/privacy.html">Privacy Policy</a> &ndash;
          <a href="http://www.android.com/branding.html">Brand Guidelines</a>
        </p>

      </div>
    </div>

    <script src="../static/jquery-1.6.2.min.js"></script>
    <script>
    var SITE_ROOT = '../';
    </script>
    <script src="../static/default.js"></script>


    <script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    </script>
    <script type="text/javascript">
    var pageTracker = _gat._getTracker("UA-5831155-1");
    pageTracker._trackPageview();
    </script>
  </body>
</html>
