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.LayoutParams
indicates aGravity
value ofCENTER_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.
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 |
See also: