Skip to content

Most visited

Recently visited

navigation

Toolbar

public class Toolbar
extends ViewGroup

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.Toolbar


A standard toolbar for use within application content.

A Toolbar is a generalization of action bars for use within application layouts. While an action bar is traditionally part of an Activity's opaque window decor controlled by the framework, a Toolbar may be placed at any arbitrary level of nesting within a view hierarchy. An application may choose to designate a Toolbar as the action bar for an Activity using the setActionBar() method.

Toolbar supports a more focused feature set than ActionBar. From start to end, a toolbar may contain a combination of the following optional elements:

  • A navigation button. This may be an Up arrow, navigation menu toggle, close, collapse, done or another glyph of the app's choosing. This button should always be used to access other navigational destinations within the container of the Toolbar and its signified content or otherwise leave the current context signified by the Toolbar. The navigation button is vertically aligned within the Toolbar's minimum height, if set.
  • A branded logo image. This may extend to the height of the bar and can be arbitrarily wide.
  • A title and subtitle. The title should be a signpost for the Toolbar's current position in the navigation hierarchy and the content contained there. The subtitle, if present should indicate any extended information about the current content. If an app uses a logo image it should strongly consider omitting a title and subtitle.
  • One or more custom views. The application may add arbitrary child views to the Toolbar. They will appear at this position within the layout. If a child view's Toolbar.LayoutParams indicates a Gravity value of CENTER_HORIZONTAL the view will attempt to center within the available space remaining in the Toolbar after all other elements have been measured.
  • An action menu. The menu of actions will pin to the end of the Toolbar offering a few frequent, important or typical actions along with an optional overflow menu for additional actions. Action buttons are vertically aligned within the Toolbar's minimum height, if set.

In modern Android UIs developers should lean more on a visually distinct color scheme for toolbars than on their application icon. The use of application icon plus title as a standard layout is discouraged on API 21 devices and newer.

Summary

Nested classes

class Toolbar.LayoutParams

Layout information for child views of Toolbars. 

interface Toolbar.OnMenuItemClickListener

Interface responsible for receiving menu item click events if the items themselves do not have individual item click listeners. 

XML attributes

android:buttonGravity  
android:collapseContentDescription Text to set as the content description for the collapse button. 
android:collapseIcon Icon drawable to use for the collapse button. 
android:contentInsetEnd Minimum inset for content views within a bar. 
android:contentInsetEndWithActions Minimum inset for content views within a bar when actions from a menu are present. 
android:contentInsetLeft Minimum inset for content views within a bar. 
android:contentInsetRight Minimum inset for content views within a bar. 
android:contentInsetStart Minimum inset for content views within a bar. 
android:contentInsetStartWithNavigation Minimum inset for content views within a bar when a navigation button is present, such as the Up button. 
android:gravity Specifies how an object should position its content, on both the X and Y axes, within its own bounds. 
android:logo Drawable to set as the logo that appears at the starting side of the Toolbar, just after the navigation button. 
android:logoDescription A content description string to describe the appearance of the associated logo image. 
android:maxButtonHeight  
android:navigationContentDescription Text to set as the content description for the navigation button located at the start of the toolbar. 
android:navigationIcon Icon drawable to use for the navigation button located at the start of the toolbar. 
android:popupTheme Reference to a theme that should be used to inflate popups shown by widgets in the toolbar. 
android:subtitle Specifies subtitle text used for navigationMode="normal"

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character. 

android:subtitleTextAppearance  
android:subtitleTextColor A color to apply to the subtitle string. 
android:title The title associated with the item. 
android:titleMargin Specifies extra space on the left, start, right and end sides of the toolbar's title. 
android:titleMarginBottom Specifies extra space on the bottom side of the toolbar's title. 
android:titleMarginEnd Specifies extra space on the end side of the toolbar's title. 
android:titleMarginStart Specifies extra space on the start side of the toolbar's title. 
android:titleMarginTop Specifies extra space on the top side of the toolbar's title. 
android:titleTextAppearance  
android:titleTextColor A color to apply to the title string. 

Inherited XML attributes

From class android.view.ViewGroup
From class android.view.View

Inherited constants

From class android.view.ViewGroup
From class android.view.View

Inherited fields

From class android.view.View

Public constructors

Toolbar(Context context)
Toolbar(Context context, AttributeSet attrs)
Toolbar(Context context, AttributeSet attrs, int defStyleAttr)
Toolbar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Public methods

void collapseActionView()

Collapse a currently expanded action view.

void dismissPopupMenus()

Dismiss all currently showing popup menus, including overflow or submenus.

Toolbar.LayoutParams generateLayoutParams(AttributeSet attrs)

Returns a new set of layout parameters based on the supplied attributes set.

int getContentInsetEnd()

Gets the ending content inset for this toolbar.

int getContentInsetEndWithActions()

Gets the end content inset to use when action buttons are present.

int getContentInsetLeft()

Gets the left content inset for this toolbar.

int getContentInsetRight()

Gets the right content inset for this toolbar.

int getContentInsetStart()

Gets the starting content inset for this toolbar.

int getContentInsetStartWithNavigation()

Gets the start content inset to use when a navigation button is present.

int getCurrentContentInsetEnd()

Gets the content inset that will be used on the ending side of the bar in the current toolbar configuration.

int getCurrentContentInsetLeft()

Gets the content inset that will be used on the left side of the bar in the current toolbar configuration.

int getCurrentContentInsetRight()

Gets the content inset that will be used on the right side of the bar in the current toolbar configuration.

int getCurrentContentInsetStart()

Gets the content inset that will be used on the starting side of the bar in the current toolbar configuration.

Drawable getLogo()

Return the current logo drawable.

CharSequence getLogoDescription()

Return the description of the toolbar's logo.

Menu getMenu()

Return the Menu shown in the toolbar.

CharSequence getNavigationContentDescription()

Retrieve the currently configured content description for the navigation button view.

Drawable getNavigationIcon()

Return the current drawable used as the navigation icon.

Drawable getOverflowIcon()

Return the current drawable used as the overflow icon.

int getPopupTheme()
CharSequence getSubtitle()

Return the subtitle of this toolbar.

CharSequence getTitle()

Returns the title of this toolbar.

int getTitleMarginBottom()
int getTitleMarginEnd()
int getTitleMarginStart()
int getTitleMarginTop()
boolean hasExpandedActionView()

Check whether this Toolbar is currently hosting an expanded action view.

boolean hideOverflowMenu()

Hide the overflow items from the associated menu.

void inflateMenu(int resId)

Inflate a menu resource into this toolbar.

boolean isOverflowMenuShowing()

Check whether the overflow menu is currently showing.

void onRtlPropertiesChanged(int layoutDirection)

Called when any RTL property (layout direction or text direction or text alignment) has been changed.

boolean onTouchEvent(MotionEvent ev)

Implement this method to handle touch screen motion events.

void setContentInsetEndWithActions(int insetEndWithActions)

Sets the start content inset to use when action buttons are present.

void setContentInsetStartWithNavigation(int insetStartWithNavigation)

Sets the start content inset to use when a navigation button is present.

void setContentInsetsAbsolute(int contentInsetLeft, int contentInsetRight)

Sets the content insets for this toolbar.

void setContentInsetsRelative(int contentInsetStart, int contentInsetEnd)

Sets the content insets for this toolbar relative to layout direction.

void setLogo(int resId)

Set a logo drawable from a resource id.

void setLogo(Drawable drawable)

Set a logo drawable.

void setLogoDescription(int resId)

Set a description of the toolbar's logo.

void setLogoDescription(CharSequence description)

Set a description of the toolbar's logo.

void setNavigationContentDescription(CharSequence description)

Set a content description for the navigation button if one is present.

void setNavigationContentDescription(int resId)

Set a content description for the navigation button if one is present.

void setNavigationIcon(Drawable icon)

Set the icon to use for the toolbar's navigation button.

void setNavigationIcon(int resId)

Set the icon to use for the toolbar's navigation button.

void setNavigationOnClickListener(View.OnClickListener listener)

Set a listener to respond to navigation events.

void setOnMenuItemClickListener(Toolbar.OnMenuItemClickListener listener)

Set a listener to respond to menu item click events.

void setOverflowIcon(Drawable icon)

Set the icon to use for the overflow button.

void setPopupTheme(int resId)

Specifies the theme to use when inflating popup menus.

void setSubtitle(CharSequence subtitle)

Set the subtitle of this toolbar.

void setSubtitle(int resId)

Set the subtitle of this toolbar.

void setSubtitleTextAppearance(Context context, int resId)

Sets the text color, size, style, hint color, and highlight color from the specified TextAppearance resource.

void setSubtitleTextColor(int color)

Sets the text color of the subtitle, if present.

void setTitle(CharSequence title)

Set the title of this toolbar.

void setTitle(int resId)

Set the title of this toolbar.

void setTitleMargin(int start, int top, int end, int bottom)

Sets the title margin.

void setTitleMarginBottom(int margin)

Sets the bottom title margin in pixels.

void setTitleMarginEnd(int margin)

Sets the ending title margin in pixels.

void setTitleMarginStart(int margin)

Sets the starting title margin in pixels.

void setTitleMarginTop(int margin)

Sets the top title margin in pixels.

void setTitleTextAppearance(Context context, int resId)

Sets the text color, size, style, hint color, and highlight color from the specified TextAppearance resource.

void setTitleTextColor(int color)

Sets the text color of the title, if present.

boolean showOverflowMenu()

Show the overflow items from the associated menu.

Protected methods

boolean checkLayoutParams(ViewGroup.LayoutParams p)
Toolbar.LayoutParams generateDefaultLayoutParams()

Returns a set of default layout parameters.

Toolbar.LayoutParams generateLayoutParams(ViewGroup.LayoutParams p)

Returns a safe set of layout parameters based on the supplied layout params.

void onDetachedFromWindow()

This is called when the view is detached from a window.

void onLayout(boolean changed, int l, int t, int r, int b)

Called from layout when this view should assign a size and position to each of its children.

void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

Measure the view and its content to determine the measured width and the measured height.

void onRestoreInstanceState(Parcelable state)

Hook allowing a view to re-apply a representation of its internal state that had previously been generated by onSaveInstanceState().

Parcelable onSaveInstanceState()

Hook allowing a view to generate a representation of its internal state that can later be used to create a new instance with that same state.

Inherited methods

From class android.view.ViewGroup
From class android.view.View
From class java.lang.Object
From interface android.view.ViewParent
From interface android.view.ViewManager
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource

XML attributes

android:buttonGravity

android:collapseContentDescription

Text to set as the content description for the collapse button.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol collapseContentDescription.

android:collapseIcon

Icon drawable to use for the collapse button.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This corresponds to the global attribute resource symbol collapseIcon.

android:contentInsetEnd

Minimum inset for content views within a bar. Navigation buttons and menu views are excepted. Only valid for some themes and configurations.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol contentInsetEnd.

Related methods:

android:contentInsetEndWithActions

Minimum inset for content views within a bar when actions from a menu are present. Only valid for some themes and configurations.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol contentInsetEndWithActions.

Related methods:

android:contentInsetLeft

Minimum inset for content views within a bar. Navigation buttons and menu views are excepted. Only valid for some themes and configurations.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol contentInsetLeft.

Related methods:

android:contentInsetRight

Minimum inset for content views within a bar. Navigation buttons and menu views are excepted. Only valid for some themes and configurations.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol contentInsetRight.

Related methods:

android:contentInsetStart

Minimum inset for content views within a bar. Navigation buttons and menu views are excepted. Only valid for some themes and configurations.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol contentInsetStart.

Related methods:

android:contentInsetStartWithNavigation

Minimum inset for content views within a bar when a navigation button is present, such as the Up button. Only valid for some themes and configurations.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol contentInsetStartWithNavigation.

Related methods:

android:gravity

Specifies how an object should position its content, on both the X and Y axes, within its own bounds.

Must be one or more (separated by '|') of the following constant values.

ConstantValueDescription
top0x30 Push object to the top of its container, not changing its size.
bottom0x50 Push object to the bottom of its container, not changing its size.
left0x03 Push object to the left of its container, not changing its size.
right0x05 Push object to the right of its container, not changing its size.
center_vertical0x10 Place object in the vertical center of its container, not changing its size.
fill_vertical0x70 Grow the vertical size of the object if needed so it completely fills its container.
center_horizontal0x01 Place object in the horizontal center of its container, not changing its size.
fill_horizontal0x07 Grow the horizontal size of the object if needed so it completely fills its container.
center0x11 Place the object in the center of its container in both the vertical and horizontal axis, not changing its size.
fill0x77 Grow the horizontal and vertical size of the object if needed so it completely fills its container.
clip_vertical0x80 Additional option that can be set to have the top and/or bottom edges of the child clipped to its container's bounds. The clip will be based on the vertical gravity: a top gravity will clip the bottom edge, a bottom gravity will clip the top edge, and neither will clip both edges.
clip_horizontal0x08 Additional option that can be set to have the left and/or right edges of the child clipped to its container's bounds. The clip will be based on the horizontal gravity: a left gravity will clip the right edge, a right gravity will clip the left edge, and neither will clip both edges.
start0x00800003 Push object to the beginning of its container, not changing its size.
end0x00800005 Push object to the end of its container, not changing its size.

This corresponds to the global attribute resource symbol gravity.

android:logo

Drawable to set as the logo that appears at the starting side of the Toolbar, just after the navigation button.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This corresponds to the global attribute resource symbol logo.

android:logoDescription

A content description string to describe the appearance of the associated logo image.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol logoDescription.

android:maxButtonHeight

android:navigationContentDescription

Text to set as the content description for the navigation button located at the start of the toolbar.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol navigationContentDescription.

Related methods:

android:navigationIcon

Icon drawable to use for the navigation button located at the start of the toolbar.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This corresponds to the global attribute resource symbol navigationIcon.

Related methods:

android:popupTheme

Reference to a theme that should be used to inflate popups shown by widgets in the toolbar.

Must be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

This corresponds to the global attribute resource symbol popupTheme.

android:subtitle

Specifies subtitle text used for navigationMode="normal"

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol subtitle.

android:subtitleTextAppearance

android:subtitleTextColor

A color to apply to the subtitle string.

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol subtitleTextColor.

android:title

The title associated with the item.

Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol title.

android:titleMargin

Specifies extra space on the left, start, right and end sides of the toolbar's title. Margin values should be positive.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol titleMargin.

Related methods:

android:titleMarginBottom

Specifies extra space on the bottom side of the toolbar's title. If both this attribute and titleMargin are specified, then this attribute takes precedence. Margin values should be positive.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol titleMarginBottom.

Related methods:

android:titleMarginEnd

Specifies extra space on the end side of the toolbar's title. If both this attribute and titleMargin are specified, then this attribute takes precedence. Margin values should be positive.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol titleMarginEnd.

Related methods:

android:titleMarginStart

Specifies extra space on the start side of the toolbar's title. If both this attribute and titleMargin are specified, then this attribute takes precedence. Margin values should be positive.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol titleMarginStart.

Related methods:

android:titleMarginTop

Specifies extra space on the top side of the toolbar's title. If both this attribute and titleMargin are specified, then this attribute takes precedence. Margin values should be positive.

Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp". Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size), in (inches), mm (millimeters).

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol titleMarginTop.

Related methods:

android:titleTextAppearance

android:titleTextColor

A color to apply to the title string.

Must be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

This corresponds to the global attribute resource symbol titleTextColor.

Public constructors

Toolbar

Added in API level 21
Toolbar (Context context)

Parameters
context Context

Toolbar

Added in API level 21
Toolbar (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

Toolbar

Added in API level 21
Toolbar (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

Toolbar

Added in API level 21
Toolbar (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

collapseActionView

Added in API level 21
void collapseActionView ()

Collapse a currently expanded action view. If this Toolbar does not have an expanded action view this method has no effect.

An action view may be expanded either directly from the MenuItem it belongs to or by user action.

See also:

dismissPopupMenus

Added in API level 21
void dismissPopupMenus ()

Dismiss all currently showing popup menus, including overflow or submenus.

generateLayoutParams

Added in API level 21
Toolbar.LayoutParams generateLayoutParams (AttributeSet attrs)

Returns a new set of layout parameters based on the supplied attributes set.

Parameters
attrs AttributeSet: the attributes to build the layout parameters from
Returns
Toolbar.LayoutParams an instance of ViewGroup.LayoutParams or one of its descendants

getContentInsetEnd

Added in API level 21
int getContentInsetEnd ()

Gets the ending content inset for this toolbar.

The content inset affects the valid area for Toolbar content other than the navigation button and menu. Insets define the minimum margin for these components and can be used to effectively align Toolbar content along well-known gridlines.

Related XML Attributes:

Returns
int The ending content inset for this toolbar

See also:

getContentInsetEndWithActions

Added in API level 24
int getContentInsetEndWithActions ()

Gets the end content inset to use when action buttons are present.

Different content insets are often called for when additional buttons are present in the toolbar, as well as at different toolbar sizes. The larger value of getContentInsetEnd() and this value will be used during layout.

Related XML Attributes:

Returns
int the end content inset used when a menu has been set in pixels

See also:

getContentInsetLeft

Added in API level 21
int getContentInsetLeft ()

Gets the left content inset for this toolbar.

The content inset affects the valid area for Toolbar content other than the navigation button and menu. Insets define the minimum margin for these components and can be used to effectively align Toolbar content along well-known gridlines.

Related XML Attributes:

Returns
int The left content inset for this toolbar

See also:

getContentInsetRight

Added in API level 21
int getContentInsetRight ()

Gets the right content inset for this toolbar.

The content inset affects the valid area for Toolbar content other than the navigation button and menu. Insets define the minimum margin for these components and can be used to effectively align Toolbar content along well-known gridlines.

Related XML Attributes:

Returns
int The right content inset for this toolbar

See also:

getContentInsetStart

Added in API level 21
int getContentInsetStart ()

Gets the starting content inset for this toolbar.

The content inset affects the valid area for Toolbar content other than the navigation button and menu. Insets define the minimum margin for these components and can be used to effectively align Toolbar content along well-known gridlines.

Related XML Attributes:

Returns
int The starting content inset for this toolbar

See also:

getContentInsetStartWithNavigation

Added in API level 24
int getContentInsetStartWithNavigation ()

Gets the start content inset to use when a navigation button is present.

Different content insets are often called for when additional buttons are present in the toolbar, as well as at different toolbar sizes. The larger value of getContentInsetStart() and this value will be used during layout.

Related XML Attributes:

Returns
int the start content inset used when a navigation icon has been set in pixels

See also:

getCurrentContentInsetEnd

Added in API level 24
int getCurrentContentInsetEnd ()

Gets the content inset that will be used on the ending side of the bar in the current toolbar configuration.

Returns
int the current content inset end in pixels

See also:

getCurrentContentInsetLeft

Added in API level 24
int getCurrentContentInsetLeft ()

Gets the content inset that will be used on the left side of the bar in the current toolbar configuration.

Returns
int the current content inset left in pixels

See also:

getCurrentContentInsetRight

Added in API level 24
int getCurrentContentInsetRight ()

Gets the content inset that will be used on the right side of the bar in the current toolbar configuration.

Returns
int the current content inset right in pixels

See also:

getCurrentContentInsetStart

Added in API level 24
int getCurrentContentInsetStart ()

Gets the content inset that will be used on the starting side of the bar in the current toolbar configuration.

Returns
int the current content inset start in pixels

See also:

getLogo

Added in API level 21
Drawable getLogo ()

Return the current logo drawable.

Returns
Drawable The current logo drawable

See also:

getLogoDescription

Added in API level 21
CharSequence getLogoDescription ()

Return the description of the toolbar's logo.

Returns
CharSequence A description of the logo

getMenu

Added in API level 21
Menu getMenu ()

Return the Menu shown in the toolbar.

Applications that wish to populate the toolbar's menu can do so from here. To use an XML menu resource, use inflateMenu(int).

Returns
Menu The toolbar's Menu

getNavigationContentDescription

Added in API level 21
CharSequence getNavigationContentDescription ()

Retrieve the currently configured content description for the navigation button view. This will be used to describe the navigation action to users through mechanisms such as screen readers or tooltips.

Related XML Attributes:

Returns
CharSequence The navigation button's content description

getNavigationIcon

Added in API level 21
Drawable getNavigationIcon ()

Return the current drawable used as the navigation icon.

Related XML Attributes:

Returns
Drawable The navigation icon drawable

getOverflowIcon

Added in API level 23
Drawable getOverflowIcon ()

Return the current drawable used as the overflow icon.

Returns
Drawable The overflow icon drawable

getPopupTheme

Added in API level 21
int getPopupTheme ()

Returns
int resource identifier of the theme used to inflate popup menus, or 0 if menus are inflated against the toolbar theme

See also:

getSubtitle

Added in API level 21
CharSequence getSubtitle ()

Return the subtitle of this toolbar.

Returns
CharSequence The current subtitle

getTitle

Added in API level 21
CharSequence getTitle ()

Returns the title of this toolbar.

Returns
CharSequence The current title.

getTitleMarginBottom

Added in API level 24
int getTitleMarginBottom ()

Related XML Attributes:

Returns
int the bottom title margin in pixels

See also:

getTitleMarginEnd

Added in API level 24
int getTitleMarginEnd ()

Related XML Attributes:

Returns
int the ending title margin in pixels

See also:

getTitleMarginStart

Added in API level 24
int getTitleMarginStart ()

Related XML Attributes:

Returns
int the starting title margin in pixels

See also:

getTitleMarginTop

Added in API level 24
int getTitleMarginTop ()

Related XML Attributes:

Returns
int the top title margin in pixels

See also:

hasExpandedActionView

Added in API level 21
boolean hasExpandedActionView ()

Check whether this Toolbar is currently hosting an expanded action view.

An action view may be expanded either directly from the MenuItem it belongs to or by user action. If the Toolbar has an expanded action view it can be collapsed using the collapseActionView() method.

Returns
boolean true if the Toolbar has an expanded action view

hideOverflowMenu

Added in API level 21
boolean hideOverflowMenu ()

Hide the overflow items from the associated menu.

Returns
boolean true if the menu was able to be hidden, false otherwise

inflateMenu

Added in API level 21
void inflateMenu (int resId)

Inflate a menu resource into this toolbar.

Inflate an XML menu resource into this toolbar. Existing items in the menu will not be modified or removed.

Parameters
resId int: ID of a menu resource to inflate

isOverflowMenuShowing

Added in API level 21
boolean isOverflowMenuShowing ()

Check whether the overflow menu is currently showing. This may not reflect a pending show operation in progress.

Returns
boolean true if the overflow menu is currently showing

onRtlPropertiesChanged

Added in API level 21
void onRtlPropertiesChanged (int layoutDirection)

Called when any RTL property (layout direction or text direction or text alignment) has been changed. Subclasses need to override this method to take care of cached information that depends on the resolved layout direction, or to inform child views that inherit their layout direction. The default implementation does nothing.

Parameters
layoutDirection int: the direction of the layout

onTouchEvent

Added in API level 21
boolean onTouchEvent (MotionEvent ev)

Implement this method to handle touch screen motion events.

If this method is used to detect click actions, it is recommended that the actions be performed by implementing and calling performClick(). This will ensure consistent system behavior, including:

  • obeying click sound preferences
  • dispatching OnClickListener calls
  • handling ACTION_CLICK when accessibility features are enabled

Parameters
ev MotionEvent: The motion event.
Returns
boolean True if the event was handled, false otherwise.

setContentInsetEndWithActions

Added in API level 24
void setContentInsetEndWithActions (int insetEndWithActions)

Sets the start content inset to use when action buttons are present.

Different content insets are often called for when additional buttons are present in the toolbar, as well as at different toolbar sizes. The larger value of getContentInsetEnd() and this value will be used during layout.

Related XML Attributes:

Parameters
insetEndWithActions int: the inset to use when a menu has been set in pixels

See also:

setContentInsetStartWithNavigation

Added in API level 24
void setContentInsetStartWithNavigation (int insetStartWithNavigation)

Sets the start content inset to use when a navigation button is present.

Different content insets are often called for when additional buttons are present in the toolbar, as well as at different toolbar sizes. The larger value of getContentInsetStart() and this value will be used during layout.

Related XML Attributes:

Parameters
insetStartWithNavigation int: the inset to use when a navigation icon has been set in pixels

See also:

setContentInsetsAbsolute

Added in API level 21
void setContentInsetsAbsolute (int contentInsetLeft, 
                int contentInsetRight)

Sets the content insets for this toolbar.

The content inset affects the valid area for Toolbar content other than the navigation button and menu. Insets define the minimum margin for these components and can be used to effectively align Toolbar content along well-known gridlines.

Related XML Attributes:

Parameters
contentInsetLeft int: Content inset for the toolbar's left edge
contentInsetRight int: Content inset for the toolbar's right edge

See also:

setContentInsetsRelative

Added in API level 21
void setContentInsetsRelative (int contentInsetStart, 
                int contentInsetEnd)

Sets the content insets for this toolbar relative to layout direction.

The content inset affects the valid area for Toolbar content other than the navigation button and menu. Insets define the minimum margin for these components and can be used to effectively align Toolbar content along well-known gridlines.

Related XML Attributes:

Parameters
contentInsetStart int: Content inset for the toolbar starting edge
contentInsetEnd int: Content inset for the toolbar ending edge

See also:

setLogo

Added in API level 21
void setLogo (int resId)

Set a logo drawable from a resource id.

This drawable should generally take the place of title text. The logo cannot be clicked. Apps using a logo should also supply a description using setLogoDescription(int).

Parameters
resId int: ID of a drawable resource

setLogo

Added in API level 21
void setLogo (Drawable drawable)

Set a logo drawable.

This drawable should generally take the place of title text. The logo cannot be clicked. Apps using a logo should also supply a description using setLogoDescription(int).

Parameters
drawable Drawable: Drawable to use as a logo

setLogoDescription

Added in API level 21
void setLogoDescription (int resId)

Set a description of the toolbar's logo.

This description will be used for accessibility or other similar descriptions of the UI.

Parameters
resId int: String resource id

setLogoDescription

Added in API level 21
void setLogoDescription (CharSequence description)

Set a description of the toolbar's logo.

This description will be used for accessibility or other similar descriptions of the UI.

Parameters
description CharSequence: Description to set

setNavigationContentDescription

Added in API level 21
void setNavigationContentDescription (CharSequence description)

Set a content description for the navigation button if one is present. The content description will be read via screen readers or other accessibility systems to explain the action of the navigation button.

Related XML Attributes:

Parameters
description CharSequence: Content description to set, or null to clear the content description

setNavigationContentDescription

Added in API level 21
void setNavigationContentDescription (int resId)

Set a content description for the navigation button if one is present. The content description will be read via screen readers or other accessibility systems to explain the action of the navigation button.

Related XML Attributes:

Parameters
resId int: Resource ID of a content description string to set, or 0 to clear the description

setNavigationIcon

Added in API level 21
void setNavigationIcon (Drawable icon)

Set the icon to use for the toolbar's navigation button.

The navigation button appears at the start of the toolbar if present. Setting an icon will make the navigation button visible.

If you use a navigation icon you should also set a description for its action using setNavigationContentDescription(int). This is used for accessibility and tooltips.

Related XML Attributes:

Parameters
icon Drawable: Drawable to set, may be null to clear the icon

setNavigationIcon

Added in API level 21
void setNavigationIcon (int resId)

Set the icon to use for the toolbar's navigation button.

The navigation button appears at the start of the toolbar if present. Setting an icon will make the navigation button visible.

If you use a navigation icon you should also set a description for its action using setNavigationContentDescription(int). This is used for accessibility and tooltips.

Related XML Attributes:

Parameters
resId int: Resource ID of a drawable to set

setNavigationOnClickListener

Added in API level 21
void setNavigationOnClickListener (View.OnClickListener listener)

Set a listener to respond to navigation events.

This listener will be called whenever the user clicks the navigation button at the start of the toolbar. An icon must be set for the navigation button to appear.

Parameters
listener View.OnClickListener: Listener to set

See also:

setOnMenuItemClickListener

Added in API level 21
void setOnMenuItemClickListener (Toolbar.OnMenuItemClickListener listener)

Set a listener to respond to menu item click events.

This listener will be invoked whenever a user selects a menu item from the action buttons presented at the end of the toolbar or the associated overflow.

Parameters
listener Toolbar.OnMenuItemClickListener: Listener to set

setOverflowIcon

Added in API level 23
void setOverflowIcon (Drawable icon)

Set the icon to use for the overflow button.

Parameters
icon Drawable: Drawable to set, may be null to clear the icon

setPopupTheme

Added in API level 21
void setPopupTheme (int resId)

Specifies the theme to use when inflating popup menus. By default, uses the same theme as the toolbar itself.

Parameters
resId int: theme used to inflate popup menus

See also:

setSubtitle

Added in API level 21
void setSubtitle (CharSequence subtitle)

Set the subtitle of this toolbar.

Subtitles should express extended information about the current content.

Parameters
subtitle CharSequence: Subtitle to set

setSubtitle

Added in API level 21
void setSubtitle (int resId)

Set the subtitle of this toolbar.

Subtitles should express extended information about the current content.

Parameters
resId int: String resource ID

setSubtitleTextAppearance

Added in API level 21
void setSubtitleTextAppearance (Context context, 
                int resId)

Sets the text color, size, style, hint color, and highlight color from the specified TextAppearance resource.

Parameters
context Context
resId int

setSubtitleTextColor

Added in API level 21
void setSubtitleTextColor (int color)

Sets the text color of the subtitle, if present.

Parameters
color int: The new text color in 0xAARRGGBB format

setTitle

Added in API level 21
void setTitle (CharSequence title)

Set the title of this toolbar.

A title should be used as the anchor for a section of content. It should describe or name the content being viewed.

Parameters
title CharSequence: Title to set

setTitle

Added in API level 21
void setTitle (int resId)

Set the title of this toolbar.

A title should be used as the anchor for a section of content. It should describe or name the content being viewed.

Parameters
resId int: Resource ID of a string to set as the title

setTitleMargin

Added in API level 24
void setTitleMargin (int start, 
                int top, 
                int end, 
                int bottom)

Sets the title margin.

Related XML Attributes:

Parameters
start int: the starting title margin in pixels
top int: the top title margin in pixels
end int: the ending title margin in pixels
bottom int: the bottom title margin in pixels

See also:

setTitleMarginBottom

Added in API level 24
void setTitleMarginBottom (int margin)

Sets the bottom title margin in pixels.

Related XML Attributes:

Parameters
margin int: the bottom title margin in pixels

See also:

setTitleMarginEnd

Added in API level 24
void setTitleMarginEnd (int margin)

Sets the ending title margin in pixels.

Related XML Attributes:

Parameters
margin int: the ending title margin in pixels

See also:

setTitleMarginStart

Added in API level 24
void setTitleMarginStart (int margin)

Sets the starting title margin in pixels.

Related XML Attributes:

Parameters
margin int: the starting title margin in pixels

See also:

setTitleMarginTop

Added in API level 24
void setTitleMarginTop (int margin)

Sets the top title margin in pixels.

Related XML Attributes:

Parameters
margin int: the top title margin in pixels

See also:

setTitleTextAppearance

Added in API level 21
void setTitleTextAppearance (Context context, 
                int resId)

Sets the text color, size, style, hint color, and highlight color from the specified TextAppearance resource.

Parameters
context Context
resId int

setTitleTextColor

Added in API level 21
void setTitleTextColor (int color)

Sets the text color of the title, if present.

Parameters
color int: The new text color in 0xAARRGGBB format

showOverflowMenu

Added in API level 21
boolean showOverflowMenu ()

Show the overflow items from the associated menu.

Returns
boolean true if the menu was able to be shown, false otherwise

Protected methods

checkLayoutParams

Added in API level 21
boolean checkLayoutParams (ViewGroup.LayoutParams p)

Parameters
p ViewGroup.LayoutParams
Returns
boolean

generateDefaultLayoutParams

Added in API level 21
Toolbar.LayoutParams generateDefaultLayoutParams ()

Returns a set of default layout parameters. These parameters are requested when the View passed to addView(View) has no layout parameters already set. If null is returned, an exception is thrown from addView.

Returns
Toolbar.LayoutParams a set of default layout parameters or null

generateLayoutParams

Added in API level 21
Toolbar.LayoutParams generateLayoutParams (ViewGroup.LayoutParams p)

Returns a safe set of layout parameters based on the supplied layout params. When a ViewGroup is passed a View whose layout params do not pass the test of checkLayoutParams(android.view.ViewGroup.LayoutParams), this method is invoked. This method should return a new set of layout params suitable for this ViewGroup, possibly by copying the appropriate attributes from the specified set of layout params.

Parameters
p ViewGroup.LayoutParams: The layout parameters to convert into a suitable set of layout parameters for this ViewGroup.
Returns
Toolbar.LayoutParams an instance of ViewGroup.LayoutParams or one of its descendants

onDetachedFromWindow

Added in API level 21
void onDetachedFromWindow ()

This is called when the view is detached from a window. At this point it no longer has a surface for drawing.

onLayout

Added in API level 21
void onLayout (boolean changed, 
                int l, 
                int t, 
                int r, 
                int b)

Called from layout when this view should assign a size and position to each of its children. Derived classes with children should override this method and call layout on each of their children.

Parameters
changed boolean: This is a new size or position for this view
l int: Left position, relative to parent
t int: Top position, relative to parent
r int: Right position, relative to parent
b int: Bottom position, relative to parent

onMeasure

Added in API level 21
void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

Measure the view and its content to determine the measured width and the measured height. This method is invoked by measure(int, int) and should be overridden by subclasses to provide accurate and efficient measurement of their contents.

CONTRACT: When overriding this method, you must call setMeasuredDimension(int, int) to store the measured width and height of this view. Failure to do so will trigger an IllegalStateException, thrown by measure(int, int). Calling the superclass' onMeasure(int, int) is a valid use.

The base class implementation of measure defaults to the background size, unless a larger size is allowed by the MeasureSpec. Subclasses should override onMeasure(int, int) to provide better measurements of their content.

If this method is overridden, it is the subclass's responsibility to make sure the measured height and width are at least the view's minimum height and width (getSuggestedMinimumHeight() and getSuggestedMinimumWidth()).

Parameters
widthMeasureSpec int: horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.
heightMeasureSpec int: vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec.

onRestoreInstanceState

Added in API level 21
void onRestoreInstanceState (Parcelable state)

Hook allowing a view to re-apply a representation of its internal state that had previously been generated by onSaveInstanceState(). This function will never be called with a null state.

Parameters
state Parcelable: The frozen state that had previously been returned by onSaveInstanceState().

onSaveInstanceState

Added in API level 21
Parcelable onSaveInstanceState ()

Hook allowing a view to generate a representation of its internal state that can later be used to create a new instance with that same state. This state should only contain information that is not persistent or can not be reconstructed later. For example, you will never store your current position on screen because that will be computed again when a new instance of the view is placed in its view hierarchy.

Some examples of things you may store here: the current cursor position in a text view (but usually not the text itself since that is stored in a content provider or other persistent storage), the currently selected item in a list view.

Returns
Parcelable Returns a Parcelable object containing the view's current dynamic state, or null if there is nothing interesting to save. The default implementation returns null.
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a one-minute survey?
Help us improve Android tools and documentation.