NavigationView
public
class
NavigationView
extends FrameLayout
java.lang.Object | ||||
↳ | android.view.View | |||
↳ | android.view.ViewGroup | |||
↳ | android.widget.FrameLayout | |||
↳ | com.google.android.material.navigation.NavigationView |
Represents a standard navigation menu for application. The menu contents can be populated by a menu resource file.
NavigationView is typically placed inside a DrawerLayout
.
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <!-- Your contents --> <com.google.android.material.navigation.NavigationView android:id="@+id/navigation" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" app:menu="@menu/my_navigation_items" /> </androidx.drawerlayout.widget.DrawerLayout>
Summary
Nested classes | |
---|---|
interface |
NavigationView.OnNavigationItemSelectedListener
Listener for handling events on navigation items. |
class |
NavigationView.SavedState
User interface state that is stored by NavigationView for implementing onSaveInstanceState(). |
XML attributes | |
---|---|
NavigationView_itemBackground |
|
NavigationView_itemHorizontalPadding |
|
NavigationView_itemIconPadding |
|
NavigationView_itemIconSize |
|
NavigationView_itemIconTint |
|
NavigationView_itemMaxLines |
|
NavigationView_itemTextAppearance |
|
NavigationView_itemTextColor |
Inherited constants |
---|
Inherited fields |
---|
Public constructors | |
---|---|
NavigationView(Context context)
|
|
NavigationView(Context context, AttributeSet attrs)
|
|
NavigationView(Context context, AttributeSet attrs, int defStyleAttr)
|
Public methods | |
---|---|
void
|
addHeaderView(View view)
Adds a View as a header of the navigation menu. |
void
|
draw(Canvas canvas)
|
MenuItem
|
getCheckedItem()
Returns the currently checked item in this navigation menu. |
int
|
getHeaderCount()
Gets the number of headers in this NavigationView. |
View
|
getHeaderView(int index)
Gets the header view at the specified position. |
Drawable
|
getItemBackground()
Returns the background drawable for our menu items. |
int
|
getItemHorizontalPadding()
Returns the horizontal (left and right) padding in pixels applied to menu items. |
int
|
getItemIconPadding()
Returns the padding in pixels between the icon (if present) and the text of menu items. |
ColorStateList
|
getItemIconTintList()
Returns the tint which is applied to our menu items' icons. |
int
|
getItemMaxLines()
Gets the android:maxLines attribute of the text view in the menu item. |
ColorStateList
|
getItemTextColor()
Returns the tint which is applied to our menu items' icons. |
Menu
|
getMenu()
Returns the |
View
|
inflateHeaderView(int res)
Inflates a View and add it as a header of the navigation menu. |
void
|
inflateMenu(int resId)
Inflate a menu resource into this navigation view. |
void
|
removeHeaderView(View view)
Removes a previously-added header view. |
void
|
setCheckedItem(MenuItem checkedItem)
Sets the currently checked item in this navigation menu. |
void
|
setCheckedItem(int id)
Sets the currently checked item in this navigation menu. |
void
|
setDrawBottomInsetForeground(boolean drawBottomInsetForeground)
|
void
|
setDrawTopInsetForeground(boolean drawTopInsetForeground)
|
void
|
setElevation(float elevation)
|
void
|
setItemBackground(Drawable itemBackground)
Set the background of our menu items to a given resource. |
void
|
setItemBackgroundResource(int resId)
Set the background of our menu items to the given resource. |
void
|
setItemHorizontalPadding(int padding)
Set the horizontal (left and right) padding in pixels of menu items. |
void
|
setItemHorizontalPaddingResource(int paddingResource)
Set the horizontal (left and right) padding of menu items. |
void
|
setItemIconPadding(int padding)
Set the padding in pixels between the icon (if present) and the text of menu items. |
void
|
setItemIconPaddingResource(int paddingResource)
Set the padding between the icon (if present) and the text of menu items. |
void
|
setItemIconSize(int iconSize)
Sets the size to be used for the menu item icons in pixels. |
void
|
setItemIconTintList(ColorStateList tint)
Set the tint which is applied to our menu items' icons. |
void
|
setItemMaxLines(int itemMaxLines)
Sets the android:maxLines attribute of the text view in the menu item. |
void
|
setItemTextAppearance(int resId)
Set the text appearance of the menu items to a given resource. |
void
|
setItemTextColor(ColorStateList textColor)
Set the text color to be used on our menu items. |
void
|
setNavigationItemSelectedListener(NavigationView.OnNavigationItemSelectedListener listener)
Set a listener that will be notified when a menu item is selected. |
void
|
setOverScrollMode(int overScrollMode)
|
void
|
setScrimInsetForeground(Drawable drawable)
Sets the drawable used for the inset foreground. |
Protected methods | |
---|---|
void
|
onAttachedToWindow()
|
void
|
onDetachedFromWindow()
|
void
|
onInsetsChanged(WindowInsetsCompat insets)
|
void
|
onMeasure(int widthSpec, int heightSpec)
|
void
|
onRestoreInstanceState(Parcelable savedState)
|
Parcelable
|
onSaveInstanceState()
|
Inherited methods | |
---|---|
XML attributes
NavigationView_itemBackground
Related methods:
NavigationView_itemHorizontalPadding
Related methods:
NavigationView_itemIconPadding
Related methods:
NavigationView_itemIconSize
Related methods:
NavigationView_itemIconTint
Related methods:
NavigationView_itemMaxLines
Related methods:
NavigationView_itemTextAppearance
Related methods:
NavigationView_itemTextColor
Related methods:
Public constructors
NavigationView
public NavigationView (Context context)
Parameters | |
---|---|
context |
Context |
NavigationView
public NavigationView (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context |
attrs |
AttributeSet |
NavigationView
public NavigationView (Context context, AttributeSet attrs, int defStyleAttr)
Parameters | |
---|---|
context |
Context |
attrs |
AttributeSet |
defStyleAttr |
int |
Public methods
addHeaderView
public void addHeaderView (View view)
Adds a View as a header of the navigation menu.
Parameters | |
---|---|
view |
View : The view to be added as a header of the navigation menu.
|
draw
public void draw (Canvas canvas)
Parameters | |
---|---|
canvas |
Canvas |
getCheckedItem
public MenuItem getCheckedItem ()
Returns the currently checked item in this navigation menu.
Returns | |
---|---|
MenuItem |
getHeaderCount
public int getHeaderCount ()
Gets the number of headers in this NavigationView.
Returns | |
---|---|
int |
A positive integer representing the number of headers. |
getHeaderView
public View getHeaderView (int index)
Gets the header view at the specified position.
Parameters | |
---|---|
index |
int : The position at which to get the view from. |
Returns | |
---|---|
View |
The header view the specified position or null if the position does not exist in this NavigationView. |
getItemBackground
public Drawable getItemBackground ()
Returns the background drawable for our menu items.
Related XML Attributes:
Returns | |
---|---|
Drawable |
See also:
getItemHorizontalPadding
public int getItemHorizontalPadding ()
Returns the horizontal (left and right) padding in pixels applied to menu items.
Related XML Attributes:
Returns | |
---|---|
int |
See also:
getItemIconPadding
public int getItemIconPadding ()
Returns the padding in pixels between the icon (if present) and the text of menu items.
Related XML Attributes:
Returns | |
---|---|
int |
See also:
getItemIconTintList
public ColorStateList getItemIconTintList ()
Returns the tint which is applied to our menu items' icons.
Related XML Attributes:
Returns | |
---|---|
ColorStateList |
See also:
getItemMaxLines
public int getItemMaxLines ()
Gets the android:maxLines attribute of the text view in the menu item.
Related XML Attributes:
Returns | |
---|---|
int |
getItemTextColor
public ColorStateList getItemTextColor ()
Returns the tint which is applied to our menu items' icons.
Related XML Attributes:
Returns | |
---|---|
ColorStateList |
See also:
getMenu
public Menu getMenu ()
Returns the Menu
instance associated with this navigation view.
Returns | |
---|---|
Menu |
inflateHeaderView
public View inflateHeaderView (int res)
Inflates a View and add it as a header of the navigation menu.
Parameters | |
---|---|
res |
int : The layout resource ID. |
Returns | |
---|---|
View |
a newly inflated View. |
inflateMenu
public void inflateMenu (int resId)
Inflate a menu resource into this navigation view.
Existing items in the menu will not be modified or removed.
Parameters | |
---|---|
resId |
int : ID of a menu resource to inflate
|
removeHeaderView
public void removeHeaderView (View view)
Removes a previously-added header view.
Parameters | |
---|---|
view |
View : The view to remove
|
setCheckedItem
public void setCheckedItem (MenuItem checkedItem)
Sets the currently checked item in this navigation menu.
Parameters | |
---|---|
checkedItem |
MenuItem : The checked item from the menu available from getMenu() .
|
setCheckedItem
public void setCheckedItem (int id)
Sets the currently checked item in this navigation menu.
Parameters | |
---|---|
id |
int : The item ID of the currently checked item.
|
setDrawBottomInsetForeground
public void setDrawBottomInsetForeground (boolean drawBottomInsetForeground)
Parameters | |
---|---|
drawBottomInsetForeground |
boolean |
setDrawTopInsetForeground
public void setDrawTopInsetForeground (boolean drawTopInsetForeground)
Parameters | |
---|---|
drawTopInsetForeground |
boolean |
setElevation
public void setElevation (float elevation)
Parameters | |
---|---|
elevation |
float |
setItemBackground
public void setItemBackground (Drawable itemBackground)
Set the background of our menu items to a given resource. The resource should refer to a Drawable object or null to use the default background set on this navigation menu.
Related XML Attributes:
Parameters | |
---|---|
itemBackground |
Drawable |
setItemBackgroundResource
public void setItemBackgroundResource (int resId)
Set the background of our menu items to the given resource. This overrides the default background set to items and it's styling.
Related XML Attributes:
Parameters | |
---|---|
resId |
int : The identifier of the resource. |
setItemHorizontalPadding
public void setItemHorizontalPadding (int padding)
Set the horizontal (left and right) padding in pixels of menu items.
Related XML Attributes:
Parameters | |
---|---|
padding |
int : The horizontal padding in pixels. |
setItemHorizontalPaddingResource
public void setItemHorizontalPaddingResource (int paddingResource)
Set the horizontal (left and right) padding of menu items.
Related XML Attributes:
Parameters | |
---|---|
paddingResource |
int : Dimension resource to use for the horizontal padding. |
setItemIconPadding
public void setItemIconPadding (int padding)
Set the padding in pixels between the icon (if present) and the text of menu items.
Related XML Attributes:
Parameters | |
---|---|
padding |
int : The padding in pixels. |
setItemIconPaddingResource
public void setItemIconPaddingResource (int paddingResource)
Set the padding between the icon (if present) and the text of menu items.
Related XML Attributes:
Parameters | |
---|---|
paddingResource |
int : Dimension resource to use for the icon padding. |
setItemIconSize
public void setItemIconSize (int iconSize)
Sets the size to be used for the menu item icons in pixels. If no icons are set, calling this method will do nothing.
Related XML Attributes:
Parameters | |
---|---|
iconSize |
int |
setItemIconTintList
public void setItemIconTintList (ColorStateList tint)
Set the tint which is applied to our menu items' icons.
Related XML Attributes:
Parameters | |
---|---|
tint |
ColorStateList : the tint to apply. |
setItemMaxLines
public void setItemMaxLines (int itemMaxLines)
Sets the android:maxLines attribute of the text view in the menu item.
Related XML Attributes:
Parameters | |
---|---|
itemMaxLines |
int |
setItemTextAppearance
public void setItemTextAppearance (int resId)
Set the text appearance of the menu items to a given resource.
Related XML Attributes:
Parameters | |
---|---|
resId |
int |
setItemTextColor
public void setItemTextColor (ColorStateList textColor)
Set the text color to be used on our menu items.
Related XML Attributes:
Parameters | |
---|---|
textColor |
ColorStateList |
See also:
setNavigationItemSelectedListener
public void setNavigationItemSelectedListener (NavigationView.OnNavigationItemSelectedListener listener)
Set a listener that will be notified when a menu item is selected.
Parameters | |
---|---|
listener |
NavigationView.OnNavigationItemSelectedListener : The listener to notify
|
setOverScrollMode
public void setOverScrollMode (int overScrollMode)
Parameters | |
---|---|
overScrollMode |
int |
setScrimInsetForeground
public void setScrimInsetForeground (Drawable drawable)
Sets the drawable used for the inset foreground.
Parameters | |
---|---|
drawable |
Drawable |
Protected methods
onAttachedToWindow
protected void onAttachedToWindow ()
onDetachedFromWindow
protected void onDetachedFromWindow ()
onInsetsChanged
protected void onInsetsChanged (WindowInsetsCompat insets)
Parameters | |
---|---|
insets |
WindowInsetsCompat |
onMeasure
protected void onMeasure (int widthSpec, int heightSpec)
Parameters | |
---|---|
widthSpec |
int |
heightSpec |
int |
onRestoreInstanceState
protected void onRestoreInstanceState (Parcelable savedState)
Parameters | |
---|---|
savedState |
Parcelable |
onSaveInstanceState
protected Parcelable onSaveInstanceState ()
Returns | |
---|---|
Parcelable |
Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2021-02-08 UTC.