java.lang.Object | |
↳ | android.support.v7.app.ActionBar |
Known Direct Subclasses |
Known Indirect Subclasses |
A window feature at the top of the activity that may display the activity title, navigation modes, and other interactive items.
Note:
This class is included in the
support library
for compatibility
with API level 7 and higher. If you're developing your app for API level 11 and higher
only
, you should instead use the framework
ActionBar
class.
When using the support library, you can add the action bar to the top of your activity
window by extending the
ActionBarActivity
class and setting the activity theme to
Theme.AppCompat
or a similar theme.
By default, the action bar shows the application icon on the left, followed by the activity title. If your activity has an options menu, you can make select items accessible directly from the action bar as "action items". You can also modify various characteristics of the action bar or remove it completely.
From your activity, you can retrieve an instance of
ActionBar
by calling
getSupportActionBar()
.
In some cases, the action bar may be overlayed by another bar that enables contextual actions,
using an
ActionMode
. For example, when the user selects one or
more items in your activity, you can enable an action mode that offers actions specific to the
selected items, with a UI that temporarily replaces the action bar. Although the UI may occupy
the same space, the
ActionMode
APIs are distinct and independent
from those for
ActionBar
.
For information about how to use the action bar, including how to add action items, navigation modes and more, read the Action Bar API guide.
Nested Classes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
ActionBar.LayoutParams | Per-child layout information associated with action bar custom views. | |||||||||
|
ActionBar.OnMenuVisibilityListener |
Listener for receiving events when
ActionBar
items are shown or hidden.
|
|||||||||
|
ActionBar.OnNavigationListener |
Listener for receiving
ActionBar
navigation events.
|
|||||||||
|
ActionBar.Tab |
A tab in the action bar that manages the hiding and showing of
Fragment
s.
|
|||||||||
|
ActionBar.TabListener |
Callback interface invoked when an
ActionBar.Tab
is focused, unfocused, added, or
removed.
|
Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
int | DISPLAY_HOME_AS_UP | Display the 'home' element such that it appears as an 'up' affordance. | |||||||||
int | DISPLAY_SHOW_CUSTOM | Show the custom view if one has been set. | |||||||||
int | DISPLAY_SHOW_HOME | Show 'home' elements in this action bar, leaving more space for other navigation elements. | |||||||||
int | DISPLAY_SHOW_TITLE | Show the activity title and subtitle, if present. | |||||||||
int | DISPLAY_USE_LOGO | Use logo instead of icon if available. | |||||||||
int | NAVIGATION_MODE_LIST | List navigation mode. | |||||||||
int | NAVIGATION_MODE_STANDARD | Standard navigation mode. | |||||||||
int | NAVIGATION_MODE_TABS | Tab navigation mode. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Add a listener that will respond to menu visibility change events.
|
||||||||||
|
Add a tab for use in tabbed navigation mode.
|
||||||||||
|
Add a tab for use in tabbed navigation mode.
|
||||||||||
|
Add a tab for use in tabbed navigation mode.
|
||||||||||
|
Add a tab for use in tabbed navigation mode.
|
||||||||||
|
|
||||||||||
|
|
||||||||||
|
Retrieve the current height of the ActionBar.
|
||||||||||
|
Get the number of navigation items present in the current navigation mode.
|
||||||||||
|
Returns the current navigation mode.
|
||||||||||
|
Get the position of the selected navigation item in list or tabbed navigation modes.
|
||||||||||
|
Returns the currently selected tab if in tabbed navigation mode and there is at least one tab
present.
|
||||||||||
|
Returns the current ActionBar subtitle in standard mode.
|
||||||||||
|
Returns the tab at the specified index.
|
||||||||||
|
Returns the number of tabs currently registered with the action bar.
|
||||||||||
|
Returns a
Context
with an appropriate theme for creating views that will appear in
the action bar.
|
||||||||||
|
Returns the current ActionBar title in standard mode.
|
||||||||||
|
Hide the ActionBar if it is currently showing.
|
||||||||||
|
|
||||||||||
|
Create and return a new
ActionBar.Tab
.
|
||||||||||
|
Remove all tabs from the action bar and deselect the current tab.
|
||||||||||
|
Remove a menu visibility listener.
|
||||||||||
|
Remove a tab from the action bar.
|
||||||||||
|
Remove a tab from the action bar.
|
||||||||||
|
Select the specified tab.
|
||||||||||
|
Set the ActionBar's background.
|
||||||||||
|
Set the action bar into custom navigation mode, supplying a view for custom navigation.
|
||||||||||
|
Set the action bar into custom navigation mode, supplying a view for custom navigation.
|
||||||||||
|
Set the action bar into custom navigation mode, supplying a view for custom navigation.
|
||||||||||
|
Set whether home should be displayed as an "up" affordance.
|
||||||||||
|
Set selected display options.
|
||||||||||
|
Set display options.
|
||||||||||
|
Set whether a custom view should be displayed, if set.
|
||||||||||
|
Set whether to include the application home affordance in the action bar.
|
||||||||||
|
Set whether an activity title/subtitle should be displayed.
|
||||||||||
|
Set whether to display the activity logo rather than the activity icon.
|
||||||||||
|
Set an alternate description for the Home/Up action, when enabled.
|
||||||||||
|
Set an alternate description for the Home/Up action, when enabled.
|
||||||||||
|
Set an alternate drawable to display next to the icon/logo/title
when
DISPLAY_HOME_AS_UP
is enabled.
|
||||||||||
|
Set an alternate drawable to display next to the icon/logo/title
when
DISPLAY_HOME_AS_UP
is enabled.
|
||||||||||
|
Enable or disable the "home" button in the corner of the action bar.
|
||||||||||
|
Set the icon to display in the 'home' section of the action bar.
|
||||||||||
|
Set the icon to display in the 'home' section of the action bar.
|
||||||||||
|
Set the adapter and navigation callback for list navigation mode.
|
||||||||||
|
Set the logo to display in the 'home' section of the action bar.
|
||||||||||
|
Set the logo to display in the 'home' section of the action bar.
|
||||||||||
|
Set the current navigation mode.
|
||||||||||
|
Set the selected navigation item in list or tabbed navigation modes.
|
||||||||||
|
Set the ActionBar's split background.
|
||||||||||
|
Set the ActionBar's stacked background.
|
||||||||||
|
Set the action bar's subtitle.
|
||||||||||
|
Set the action bar's subtitle.
|
||||||||||
|
Set the action bar's title.
|
||||||||||
|
Set the action bar's title.
|
||||||||||
|
Show the ActionBar if it is not currently showing.
|
[Expand]
Inherited Methods
|
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Display the 'home' element such that it appears as an 'up' affordance. e.g. show an arrow to the left indicating the action that will be taken. Set this flag if selecting the 'home' button in the action bar to return up by a single level in your UI rather than back to the top level or front page.
Setting this option will implicitly enable interaction with the home/up button. See
setHomeButtonEnabled(boolean)
.
Show the custom view if one has been set.
Show 'home' elements in this action bar, leaving more space for other navigation elements. This includes logo and icon.
Show the activity title and subtitle, if present.
Use logo instead of icon if available. This flag will cause appropriate navigation modes to use a wider logo in place of the standard icon.
List navigation mode. Instead of static title text this mode presents a list menu for navigation within the activity. e.g. this might be presented to the user as a dropdown list.
Standard navigation mode. Consists of either a logo or icon and title text with an optional subtitle. Clicking any of these elements will dispatch onOptionsItemSelected to the host Activity with a MenuItem with item ID android.R.id.home.
Tab navigation mode. Instead of static title text this mode presents a series of tabs for navigation within the activity.
Add a listener that will respond to menu visibility change events.
listener | The new listener to add |
---|
Add a tab for use in tabbed navigation mode. The tab will be inserted at
position
. If this is the first tab to be added it will become the selected tab.
tab | The tab to add |
---|---|
position | The new position of the tab |
Add a tab for use in tabbed navigation mode. The tab will be added at the end of the list. If this is the first tab to be added it will become the selected tab.
tab | Tab to add |
---|
Add a tab for use in tabbed navigation mode. The tab will be added at the end of the list.
tab | Tab to add |
---|---|
setSelected | True if the added tab should become the selected tab. |
Add a tab for use in tabbed navigation mode. The tab will be insterted at
position
.
tab | The tab to add |
---|---|
position | The new position of the tab |
setSelected | True if the added tab should become the selected tab. |
Retrieve the current height of the ActionBar.
Get the number of navigation items present in the current navigation mode.
Returns the current navigation mode. The result will be one of:
Get the position of the selected navigation item in list or tabbed navigation modes.
Returns the currently selected tab if in tabbed navigation mode and there is at least one tab present.
Returns the current ActionBar subtitle in standard mode. Returns null if
getNavigationMode()
would not return
NAVIGATION_MODE_STANDARD
.
Returns the tab at the specified index.
index | Index value in the range 0-get |
---|
Returns the number of tabs currently registered with the action bar.
Returns a
Context
with an appropriate theme for creating views that will appear in
the action bar. If you are inflating or instantiating custom views that will appear in an
action bar, you should use the Context returned by this method. (This includes adapters used
for list navigation mode.) This will ensure that views contrast properly against the action
bar.
Returns the current ActionBar title in standard mode. Returns null if
getNavigationMode()
would not return
NAVIGATION_MODE_STANDARD
.
Hide the ActionBar if it is currently showing. If the window hosting the ActionBar does not
have the feature
FEATURE_ACTION_BAR_OVERLAY
it will resize application content
to fit the new space available.
Instead of calling this function directly, you can also cause an ActionBar using the
overlay feature to hide through
View.SYSTEM_UI_FLAG_FULLSCREEN
. Hiding the ActionBar through this system UI flag allows you
to more seamlessly hide it in conjunction with other screen decorations.
true
if the ActionBar is showing,
false
otherwise.
Create and return a new
ActionBar.Tab
. This tab will not be included in the action bar until it
is added.
Very often tabs will be used to switch between
Fragment
objects. Here is a
typical implementation of such tabs:
import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.app.Fragment; import android.app.FragmentTransaction; import android.os.Bundle; import android.widget.Toast; /** * This demonstrates the use of action bar tabs and how they interact * with other action bar features. */ public class FragmentTabs extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final ActionBar bar = getActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); bar.addTab(bar.newTab() .setText("Simple") .setTabListener(new TabListener<FragmentStack.CountingFragment>( this, "simple", FragmentStack.CountingFragment.class))); bar.addTab(bar.newTab() .setText("Contacts") .setTabListener(new TabListener<LoaderCursor.CursorLoaderListFragment>( this, "contacts", LoaderCursor.CursorLoaderListFragment.class))); bar.addTab(bar.newTab() .setText("Apps") .setTabListener(new TabListener<LoaderCustom.AppListFragment>( this, "apps", LoaderCustom.AppListFragment.class))); bar.addTab(bar.newTab() .setText("Throttle") .setTabListener(new TabListener<LoaderThrottle.ThrottledLoaderListFragment>( this, "throttle", LoaderThrottle.ThrottledLoaderListFragment.class))); if (savedInstanceState != null) { bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0)); } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("tab", getActionBar().getSelectedNavigationIndex()); } public static class TabListener<T extends Fragment> implements ActionBar.TabListener { private final Activity mActivity; private final String mTag; private final Class<T> mClass; private final Bundle mArgs; private Fragment mFragment; public TabListener(Activity activity, String tag, Class<T> clz) { this(activity, tag, clz, null); } public TabListener(Activity activity, String tag, Class<T> clz, Bundle args) { mActivity = activity; mTag = tag; mClass = clz; mArgs = args; // Check to see if we already have a fragment for this tab, probably // from a previously saved state. If so, deactivate it, because our // initial state is that a tab isn't shown. mFragment = mActivity.getFragmentManager().findFragmentByTag(mTag); if (mFragment != null && !mFragment.isDetached()) { FragmentTransaction ft = mActivity.getFragmentManager().beginTransaction(); ft.detach(mFragment); ft.commit(); } } public void onTabSelected(Tab tab, FragmentTransaction ft) { if (mFragment == null) { mFragment = Fragment.instantiate(mActivity, mClass.getName(), mArgs); ft.add(android.R.id.content, mFragment, mTag); } else { ft.attach(mFragment); } } public void onTabUnselected(Tab tab, FragmentTransaction ft) { if (mFragment != null) { ft.detach(mFragment); } } public void onTabReselected(Tab tab, FragmentTransaction ft) { Toast.makeText(mActivity, "Reselected!", Toast.LENGTH_SHORT).show(); } } }
Remove all tabs from the action bar and deselect the current tab.
Remove a menu visibility listener. This listener will no longer receive menu visibility change events.
listener | A listener to remove that was previously added |
---|
Remove a tab from the action bar. If the removed tab was selected it will be deselected and another tab will be selected if present.
tab | The tab to remove |
---|
Remove a tab from the action bar. If the removed tab was selected it will be deselected and another tab will be selected if present.
position | Position of the tab to remove |
---|
Select the specified tab. If it is not a child of this action bar it will be added.
Note: If you want to select by index, use
setSelectedNavigationItem(int)
.
tab | Tab to select |
---|
Set the ActionBar's background. This will be used for the primary action bar.
d | Background drawable |
---|
Set the action bar into custom navigation mode, supplying a view for custom navigation.
Custom navigation views appear between the application icon and any action buttons and may use any space available there. Common use cases for custom navigation views might include an auto-suggesting address bar for a browser or other navigation mechanisms that do not translate well to provided navigation modes.
The display option
DISPLAY_SHOW_CUSTOM
must be set for the custom view to be
displayed.
resId | Resource ID of a layout to inflate into the ActionBar. |
---|
Set the action bar into custom navigation mode, supplying a view for custom navigation.
Custom navigation views appear between the application icon and any action buttons and may use any space available there. Common use cases for custom navigation views might include an auto-suggesting address bar for a browser or other navigation mechanisms that do not translate well to provided navigation modes.
The display option
DISPLAY_SHOW_CUSTOM
must be set for the custom view to be
displayed.
view | Custom navigation view to place in the ActionBar. |
---|---|
layoutParams | How this custom view should layout in the bar. |
Set the action bar into custom navigation mode, supplying a view for custom navigation. Custom navigation views appear between the application icon and any action buttons and may use any space available there. Common use cases for custom navigation views might include an auto-suggesting address bar for a browser or other navigation mechanisms that do not translate well to provided navigation modes.
view | Custom navigation view to place in the ActionBar. |
---|
Set whether home should be displayed as an "up" affordance. Set this to true if selecting "home" returns up by a single level in your UI rather than back to the top level or front page.
To set several display options at once, see the setDisplayOptions methods.
showHomeAsUp | true to show the user that selecting home will return one level up rather than to the top level of the app. |
---|
Set selected display options. Only the options specified by mask will be changed. To change
all display option bits at once, see
setDisplayOptions(int)
.
Example: setDisplayOptions(0, DISPLAY_SHOW_HOME) will disable the
DISPLAY_SHOW_HOME
option. setDisplayOptions(DISPLAY_SHOW_HOME, DISPLAY_SHOW_HOME |
DISPLAY_USE_LOGO) will enable
DISPLAY_SHOW_HOME
and disable
DISPLAY_USE_LOGO
.
options | A combination of the bits defined by the DISPLAY_ constants defined in ActionBar. |
---|---|
mask | A bit mask declaring which display options should be changed. |
Set display options. This changes all display option bits at once. To change a limited subset
of display options, see
setDisplayOptions(int, int)
.
options | A combination of the bits defined by the DISPLAY_ constants defined in ActionBar. |
---|
Set whether a custom view should be displayed, if set.
To set several display options at once, see the setDisplayOptions methods.
showCustom | true if the currently set custom view should be displayed, false otherwise. |
---|
Set whether to include the application home affordance in the action bar. Home is presented as either an activity icon or logo.
To set several display options at once, see the setDisplayOptions methods.
showHome | true to show home, false otherwise. |
---|
Set whether an activity title/subtitle should be displayed.
To set several display options at once, see the setDisplayOptions methods.
showTitle | true to display a title/subtitle if present. |
---|
Set whether to display the activity logo rather than the activity icon. A logo is often a wider, more detailed image.
To set several display options at once, see the setDisplayOptions methods.
useLogo | true to use the activity logo, false to use the activity icon. |
---|
Set an alternate description for the Home/Up action, when enabled.
This description is commonly used for accessibility/screen readers when
the Home action is enabled. (See
setDisplayHomeAsUpEnabled(boolean)
.)
Examples of this are, "Navigate Home" or "Navigate Up" depending on the
DISPLAY_HOME_AS_UP
display option. If you have changed the home-as-up
indicator using
setHomeAsUpIndicator(int)
to indicate more specific
functionality such as a sliding drawer, you should also set this to accurately
describe the action.
Setting this to
null
will use the system default description.
description | New description for the Home action when enabled |
---|
Set an alternate description for the Home/Up action, when enabled.
This description is commonly used for accessibility/screen readers when
the Home action is enabled. (See
setDisplayHomeAsUpEnabled(boolean)
.)
Examples of this are, "Navigate Home" or "Navigate Up" depending on the
DISPLAY_HOME_AS_UP
display option. If you have changed the home-as-up
indicator using
setHomeAsUpIndicator(int)
to indicate more specific
functionality such as a sliding drawer, you should also set this to accurately
describe the action.
Setting this to
0
will use the system default description.
resId | Resource ID of a string to use as the new description for the Home action when enabled |
---|
Set an alternate drawable to display next to the icon/logo/title
when
DISPLAY_HOME_AS_UP
is enabled. This can be useful if you are using
this mode to display an alternate selection for up navigation, such as a sliding drawer.
If you pass
null
to this method, the default drawable from the theme
will be used.
If you implement alternate or intermediate behavior around Up, you should also
call
setHomeActionContentDescription()
to provide a correct description of the action for accessibility support.
indicator | A drawable to use for the up indicator, or null to use the theme's default |
---|
Set an alternate drawable to display next to the icon/logo/title
when
DISPLAY_HOME_AS_UP
is enabled. This can be useful if you are using
this mode to display an alternate selection for up navigation, such as a sliding drawer.
If you pass
0
to this method, the default drawable from the theme
will be used.
If you implement alternate or intermediate behavior around Up, you should also
call
setHomeActionContentDescription()
to provide a correct description of the action for accessibility support.
resId | Resource ID of a drawable to use for the up indicator, or 0 to use the theme's default |
---|
Enable or disable the "home" button in the corner of the action bar. (Note that this is the application home/up affordance on the action bar, not the systemwide home button.)
This defaults to true for packages targeting < API 14. For packages targeting API 14 or greater, the application should call this method to enable interaction with the home/up affordance.
Setting the
DISPLAY_HOME_AS_UP
display option will automatically enable the home
button.
enabled | true to enable the home button, false to disable the home button. |
---|
Set the icon to display in the 'home' section of the action bar. The action bar will use an
icon specified by its style or the activity icon by default.
Whether the home section shows an icon or logo is controlled by the display option
DISPLAY_USE_LOGO
.
icon | Drawable to show as an icon. |
---|
Set the icon to display in the 'home' section of the action bar. The action bar will use an
icon specified by its style or the activity icon by default.
Whether the home section shows an icon or logo is controlled by the display option
DISPLAY_USE_LOGO
.
resId | Resource ID of a drawable to show as an icon. |
---|
Set the adapter and navigation callback for list navigation mode. The supplied adapter will provide views for the expanded list as well as the currently selected item. (These may be displayed differently.) The supplied OnNavigationListener will alert the application when the user changes the current list selection.
adapter | An adapter that will provide views both to display the current navigation selection and populate views within the dropdown navigation menu. |
---|---|
callback | An OnNavigationListener that will receive events when the user selects a navigation item. |
Set the logo to display in the 'home' section of the action bar. The action bar will use a
logo specified by its style or the activity logo by default.
Whether the home section shows an icon or logo is controlled by the display option
DISPLAY_USE_LOGO
.
resId | Resource ID of a drawable to show as a logo. |
---|
Set the logo to display in the 'home' section of the action bar. The action bar will use a
logo specified by its style or the activity logo by default.
Whether the home section shows an icon or logo is controlled by the display option
DISPLAY_USE_LOGO
.
logo | Drawable to show as a logo. |
---|
Set the current navigation mode.
mode | The new mode to set. |
---|
Set the selected navigation item in list or tabbed navigation modes.
position | Position of the item to select. |
---|
Set the ActionBar's split background. This will appear in the split action bar containing menu-provided action buttons on some devices and configurations
You can enable split action bar with
uiOptions
d | Background drawable for the split bar |
---|
Set the ActionBar's stacked background. This will appear in the second row/stacked bar on some devices and configurations.
d | Background drawable for the stacked row |
---|
Set the action bar's subtitle. This will only be displayed if
DISPLAY_SHOW_TITLE
is
set.
resId | Resource ID of subtitle string to set |
---|
Set the action bar's subtitle. This will only be displayed if
DISPLAY_SHOW_TITLE
is
set. Set to null to disable the subtitle entirely.
subtitle | Subtitle to set |
---|
Set the action bar's title. This will only be displayed if
DISPLAY_SHOW_TITLE
is
set.
resId | Resource ID of title string to set |
---|
Set the action bar's title. This will only be displayed if
DISPLAY_SHOW_TITLE
is
set.
title | Title to set |
---|
Show the ActionBar if it is not currently showing. If the window hosting the ActionBar does
not have the feature
FEATURE_ACTION_BAR_OVERLAY
it will resize application
content to fit the new space available.
If you are hiding the ActionBar through
View.SYSTEM_UI_FLAG_FULLSCREEN
, you should not call this function directly.