Toolbar
public
class
Toolbar
extends ViewGroup
| java.lang.Object | |||
| ↳ | android.view.View | ||
| ↳ | android.view.ViewGroup | ||
| ↳ | androidx.appcompat.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 setSupportActionBar() 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.LayoutParamsindicates aGravityvalue ofCENTER_HORIZONTALthe 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.
R.attr.buttonGravity
R.attr.collapseContentDescription
R.attr.collapseIcon
R.attr.contentInsetEnd
R.attr.contentInsetLeft
R.attr.contentInsetRight
R.attr.contentInsetStart
R.attr.contentInsetStartWithNavigation
R.attr.contentInsetEndWithActions
R.attr.gravity
R.attr.logo
R.attr.logoDescription
R.attr.maxButtonHeight
R.attr.navigationContentDescription
R.attr.navigationIcon
R.attr.popupTheme
R.attr.subtitle
R.attr.subtitleTextAppearance
R.attr.subtitleTextColor
R.attr.title
R.attr.titleMargin
R.attr.titleMarginBottom
R.attr.titleMarginEnd
R.attr.titleMarginStart
R.attr.titleMarginTop
R.attr.titleTextAppearance
R.attr.titleTextColor
R.attr.menu
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. |
class |
Toolbar.SavedState
|
Inherited constants |
|---|
Inherited fields |
|---|
Public constructors | |
|---|---|
Toolbar(Context context)
|
|
Toolbar(Context context, AttributeSet attrs)
|
|
Toolbar(Context context, AttributeSet attrs, int defStyleAttr)
|
|
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)
|
CharSequence
|
getCollapseContentDescription()
Retrieve the currently configured content description for the collapse button view. |
Drawable
|
getCollapseIcon()
Return the current drawable used as the collapse icon. |
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. |
boolean
|
onHoverEvent(MotionEvent ev)
|
void
|
onRtlPropertiesChanged(int layoutDirection)
|
boolean
|
onTouchEvent(MotionEvent ev)
|
void
|
setCollapseContentDescription(CharSequence description)
Set a content description for the collapse button if one is present. |
void
|
setCollapseContentDescription(int resId)
Set a content description for the collapse button if one is present. |
void
|
setCollapseIcon(Drawable icon)
Set the icon to use for the toolbar's collapse button. |
void
|
setCollapseIcon(int resId)
Set the icon to use for the toolbar's collapse button. |
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
|
setSubtitleTextColor(ColorStateList 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. |
void
|
setTitleTextColor(ColorStateList 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()
|
Toolbar.LayoutParams
|
generateLayoutParams(ViewGroup.LayoutParams p)
|
void
|
onDetachedFromWindow()
|
void
|
onLayout(boolean changed, int l, int t, int r, int b)
|
void
|
onMeasure(int widthMeasureSpec, int heightMeasureSpec)
|
void
|
onRestoreInstanceState(Parcelable state)
|
Parcelable
|
onSaveInstanceState()
|
Inherited methods | |
|---|---|
Public constructors
Toolbar
public Toolbar (Context context, AttributeSet attrs)
| Parameters | |
|---|---|
context |
Context |
attrs |
AttributeSet |
Toolbar
public Toolbar (Context context, AttributeSet attrs, int defStyleAttr)
| Parameters | |
|---|---|
context |
Context |
attrs |
AttributeSet |
defStyleAttr |
int |
Public methods
collapseActionView
public 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
public void dismissPopupMenus ()
Dismiss all currently showing popup menus, including overflow or submenus.
generateLayoutParams
public Toolbar.LayoutParams generateLayoutParams (AttributeSet attrs)
| Parameters | |
|---|---|
attrs |
AttributeSet |
| Returns | |
|---|---|
Toolbar.LayoutParams |
|
getCollapseContentDescription
public CharSequence getCollapseContentDescription ()
Retrieve the currently configured content description for the collapse button view. This will be used to describe the collapse action to users through mechanisms such as screen readers or tooltips.
| Returns | |
|---|---|
CharSequence |
The collapse button's content description
R.attr.collapseContentDescription
|
getCollapseIcon
public Drawable getCollapseIcon ()
Return the current drawable used as the collapse icon.
| Returns | |
|---|---|
Drawable |
The collapse icon drawable
R.attr.collapseIcon
|
getContentInsetEnd
public 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.
| Returns | |
|---|---|
int |
The ending content inset for this toolbar |
getContentInsetEndWithActions
public 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.
| Returns | |
|---|---|
int |
the end content inset used when a menu has been set in pixels |
getContentInsetLeft
public 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.
| Returns | |
|---|---|
int |
The left content inset for this toolbar |
getContentInsetRight
public 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.
| Returns | |
|---|---|
int |
The right content inset for this toolbar |
getContentInsetStart
public 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.
| Returns | |
|---|---|
int |
The starting content inset for this toolbar |
getContentInsetStartWithNavigation
public 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.
| Returns | |
|---|---|
int |
the start content inset used when a navigation icon has been set in pixels |
getCurrentContentInsetEnd
public 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
public 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 |
getCurrentContentInsetRight
public 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 |
getCurrentContentInsetStart
public 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
public Drawable getLogo ()
Return the current logo drawable.
| Returns | |
|---|---|
Drawable |
The current logo drawable |
getLogoDescription
public CharSequence getLogoDescription ()
Return the description of the toolbar's logo.
| Returns | |
|---|---|
CharSequence |
A description of the logo |
getMenu
public 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
R.attr.menu
|
getNavigationContentDescription
public 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.
| Returns | |
|---|---|
CharSequence |
The navigation button's content description
R.attr.navigationContentDescription
|
getNavigationIcon
public Drawable getNavigationIcon ()
Return the current drawable used as the navigation icon.
| Returns | |
|---|---|
Drawable |
The navigation icon drawable
R.attr.navigationIcon
|
getOverflowIcon
public Drawable getOverflowIcon ()
Return the current drawable used as the overflow icon.
| Returns | |
|---|---|
Drawable |
The overflow icon drawable |
getPopupTheme
public 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
public CharSequence getSubtitle ()
Return the subtitle of this toolbar.
| Returns | |
|---|---|
CharSequence |
The current subtitle |
getTitle
public CharSequence getTitle ()
Returns the title of this toolbar.
| Returns | |
|---|---|
CharSequence |
The current title. |
getTitleMarginBottom
public int getTitleMarginBottom ()
| Returns | |
|---|---|
int |
the bottom title margin in pixels |
getTitleMarginEnd
public int getTitleMarginEnd ()
| Returns | |
|---|---|
int |
the ending title margin in pixels |
getTitleMarginStart
public int getTitleMarginStart ()
| Returns | |
|---|---|
int |
the starting title margin in pixels |
getTitleMarginTop
public int getTitleMarginTop ()
| Returns | |
|---|---|
int |
the top title margin in pixels |
hasExpandedActionView
public 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
public boolean hideOverflowMenu ()
Hide the overflow items from the associated menu.
| Returns | |
|---|---|
boolean |
true if the menu was able to be hidden, false otherwise |
inflateMenu
public 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
R.attr.menu
|
isOverflowMenuShowing
public 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
public void onRtlPropertiesChanged (int layoutDirection)
| Parameters | |
|---|---|
layoutDirection |
int |
setCollapseContentDescription
public void setCollapseContentDescription (CharSequence description)
Set a content description for the collapse 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.
| Parameters | |
|---|---|
description |
CharSequence: Content description to set, or null to
clear the content description
R.attr.collapseContentDescription
|
setCollapseContentDescription
public void setCollapseContentDescription (int resId)
Set a content description for the collapse button if one is present. The content description will be read via screen readers or other accessibility systems to explain the action of the collapse button.
| Parameters | |
|---|---|
resId |
int: Resource ID of a content description string to set, or 0 to
clear the description
R.attr.collapseContentDescription
|
setCollapseIcon
public void setCollapseIcon (Drawable icon)
Set the icon to use for the toolbar's collapse button.
The collapse button appears at the start of the toolbar when an action view is present .
| Parameters | |
|---|---|
icon |
Drawable: Drawable to set, may be null to use the default icon
R.attr.collapseIcon
|