android官方API之Toolbar
來源:https://developer.android.com/reference/android/widget/Toolbar
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
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
, 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'sminimum 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". |
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 |
|
From class |
Inherited constants |
---|
From class |
From class |
Inherited fields |
---|
From class |
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 |
onAttachedToWindow() This is called when the view is attached to a window. |
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 |
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 |
|
From class |
|
From class |
|
From interface |
|
From interface |
|
From interface |
|
From interface |
|
From interface |
XML attributes
android:buttonGravity
android:collapseContentDescription
Text to set as the content description for the collapse button.
May be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character;
android:collapseIcon
Icon drawable to use for the collapse button.
May be a reference to another resource, in the form "@[+][package:]type/name
" or a theme attribute in the form "?[package:]type/name
".
android:contentInsetEnd
Minimum inset for content views within a bar. Navigation buttons and menu views are excepted. Only valid for some themes and configurations.
May 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), and mm (millimeters).
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.
May 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), and mm (millimeters).
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.
May 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), and mm (millimeters).
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.
May 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), and mm (millimeters).
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.
May 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), and mm (millimeters).
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.
May 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), and mm (millimeters).
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.
Constant | Value | Description |
---|---|---|
bottom | 50 | Push object to the bottom of its container, not changing its size. |
center | 11 | Place the object in the center of its container in both the vertical and horizontal axis, not changing its size. |
center_horizontal | 1 | Place object in the horizontal center of its container, not changing its size. |
center_vertical | 10 | Place object in the vertical center of its container, not changing its size. |
clip_horizontal | 8 | 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. |
clip_vertical | 80 | 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. |
end | 800005 | Push object to the end of its container, not changing its size. |
fill | 77 | Grow the horizontal and vertical size of the object if needed so it completely fills its container. |
fill_horizontal | 7 | Grow the horizontal size of the object if needed so it completely fills its container. |
fill_vertical | 70 | Grow the vertical size of the object if needed so it completely fills its container. |
left | 3 | Push object to the left of its container, not changing its size. |
right | 5 | Push object to the right of its container, not changing its size. |
start | 800003 | Push object to the beginning of its container, not changing its size. |
top | 30 | Push object to the top of its container, not changing its size. |
android:logo
Drawable to set as the logo that appears at the starting side of the Toolbar, just after the navigation button.
May be a reference to another resource, in the form "@[+][package:]type/name
" or a theme attribute in the form "?[package:]type/name
".
android:logoDescription
A content description string to describe the appearance of the associated logo image.
May be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character;
android:maxButtonHeight
android:navigationContentDescription
Text to set as the content description for the navigation button located at the start of the toolbar.
May be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character;
Related methods:
android:navigationIcon
Icon drawable to use for the navigation button located at the start of the toolbar.
May be a reference to another resource, in the form "@[+][package:]type/name
" or a theme attribute in the form "?[package:]type/name
".
Related methods:
android:popupTheme
Reference to a theme that should be used to inflate popups shown by widgets in the toolbar.
May be a reference to another resource, in the form "@[+][package:]type/name
" or a theme attribute in the form "?[package:]type/name
".
android:subtitle
Specifies subtitle text used for navigationMode="normal".
May 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.
May be a color value, in the form of "#rgb
", "#argb
", "#rrggbb
", or "#aarrggbb
".
android:title
The title associated with the item.
May be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character;
android:titleMargin
Specifies extra space on the left, start, right and end sides of the toolbar's title. Margin values should be positive.
May 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), and mm (millimeters).
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.
May 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), and mm (millimeters).
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.
May 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), and mm (millimeters).
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.
May 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), and mm (millimeters).
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.
May 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), and mm (millimeters).
Related methods:
android:titleTextAppearance
android:titleTextColor
A color to apply to the title string.
May be a color value, in the form of "#rgb
", "#argb
", "#rrggbb
", or "#aarrggbb
".
Public constructors
Toolbar
added in API level 21
public Toolbar (Context context)
Parameters | |
---|---|
context |
Context
|
Toolbar
added in API level 21
public Toolbar (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
Toolbar
added in API level 21
public Toolbar (Context context, AttributeSet attrs, int defStyleAttr)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
defStyleAttr |
int
|
Toolbar
added in API level 21
public 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
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
added in API level 21
public void dismissPopupMenus ()
Dismiss all currently showing popup menus, including overflow or submenus.
generateLayoutParams
added in API level 21
public 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
|