Most visited

Recently visited

NavigationView

public class NavigationView
extends FrameLayout

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.FrameLayout
         ↳ android.support.design.widget.NavigationView


代表应用程序的标准导航菜单。 菜单内容可以由菜单资源文件填充。

NavigationView通常放置在 DrawerLayout

 <android.support.v4.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 -->

     <android.support.design.widget.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" />
 </android.support.v4.widget.DrawerLayout>
 

Summary

Nested classes

interface NavigationView.OnNavigationItemSelectedListener

监听器用于处理导航项目上的事件。

class NavigationView.SavedState

用于实现onSaveInstanceState()的NavigationView存储的用户界面状态。

XML attributes

android.support.design:itemBackground  
android.support.design:itemIconTint  
android.support.design:itemTextAppearance  
android.support.design:itemTextColor  

Inherited XML attributes

From class android.widget.FrameLayout
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

NavigationView(Context context)
NavigationView(Context context, AttributeSet attrs)
NavigationView(Context context, AttributeSet attrs, int defStyleAttr)

Public methods

void addHeaderView(View view)

添加视图作为导航菜单的标题。

void draw(Canvas canvas)

手动将此视图(及其所有子项)呈现给定的Canvas。

int getHeaderCount()

获取此NavigationView中标题的数量。

View getHeaderView(int index)

获取指定位置的标题视图。

Drawable getItemBackground()

返回我们的菜单项的背景可绘制。

ColorStateList getItemIconTintList()

返回应用于我们菜单项的图标的色调。

ColorStateList getItemTextColor()

返回应用于我们菜单项的图标的色调。

Menu getMenu()

返回与此导航视图关联的 Menu实例。

View inflateHeaderView(int res)

使视图膨胀并将其添加为导航菜单的标题。

void inflateMenu(int resId)

将菜单资源充入此导航视图。

void removeHeaderView(View view)

删除以前添加的标题视图。

void setCheckedItem(int id)

在此导航菜单中设置当前选中的项目。

void setItemBackground(Drawable itemBackground)

将我们的菜单项的背景设置为给定的资源。

void setItemBackgroundResource(int resId)

将我们菜单项的背景设置为给定资源。

void setItemIconTintList(ColorStateList tint)

设置应用于我们菜单项的图标的色调。

void setItemTextAppearance(int resId)

将菜单项的文本外观设置为给定的资源。

void setItemTextColor(ColorStateList textColor)

设置要在我们的菜单项上使用的文本颜色。

void setNavigationItemSelectedListener(NavigationView.OnNavigationItemSelectedListener listener)

设置一个监听器,当点击菜单项时将会收到通知。

Protected methods

void onAttachedToWindow()

这在视图附加到窗口时被调用。

void onDetachedFromWindow()

这是在视图从窗口分离时调用的。

void onInsetsChanged(Rect insets)
void onMeasure(int widthSpec, int heightSpec)

测量视图及其内容以确定测量宽度和测量高度。

void onRestoreInstanceState(Parcelable savedState)

吊钩允许重新应用以前由 onSaveInstanceState()生成的内部状态的表示。

Parcelable onSaveInstanceState()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。

Inherited methods

From class android.widget.FrameLayout
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.support.design:itemBackground

相关方法:

android.support.design:itemIconTint

相关方法:

android.support.design:itemTextAppearance

相关方法:

android.support.design:itemTextColor

相关方法:

Public constructors

NavigationView

NavigationView (Context context)

Parameters
context Context

NavigationView

NavigationView (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

NavigationView

NavigationView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

Public methods

addHeaderView

void addHeaderView (View view)

添加视图作为导航菜单的标题。

Parameters
view View: The view to be added as a header of the navigation menu.

draw

void draw (Canvas canvas)

手动将此视图(及其所有子项)呈现给定的Canvas。 在调用这个函数之前,视图必须已经完成了一个完整的布局。 在实现视图时,实现onDraw(android.graphics.Canvas)而不是重写此方法。 如果您确实需要重写此方法,请调用超类版本。

Parameters
canvas Canvas: The Canvas to which the View is rendered.

getHeaderCount

int getHeaderCount ()

获取此NavigationView中标题的数量。

Returns
int A positive integer representing the number of headers.

getHeaderView

View getHeaderView (int index)

获取指定位置的标题视图。

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

Drawable getItemBackground ()

返回我们的菜单项的背景可绘制。

相关XML属性:

Returns
Drawable

也可以看看:

getItemIconTintList

ColorStateList getItemIconTintList ()

返回应用于我们菜单项的图标的色调。

相关XML属性:

Returns
ColorStateList

也可以看看:

getItemTextColor

ColorStateList getItemTextColor ()

返回应用于我们菜单项的图标的色调。

相关XML属性:

Returns
ColorStateList

也可以看看:

getMenu

Menu getMenu ()

返回与此导航视图关联的 Menu实例。

Returns
Menu

inflateHeaderView

View inflateHeaderView (int res)

使视图膨胀并将其添加为导航菜单的标题。

Parameters
res int: The layout resource ID.
Returns
View a newly inflated View.

inflateMenu

void inflateMenu (int resId)

将菜单资源充入此导航视图。

菜单中的现有项目将不会被修改或删除。

Parameters
resId int: ID of a menu resource to inflate

removeHeaderView

void removeHeaderView (View view)

删除以前添加的标题视图。

Parameters
view View: The view to remove

setCheckedItem

void setCheckedItem (int id)

在此导航菜单中设置当前选中的项目。

Parameters
id int: The item ID of the currently checked item.

setItemBackground

void setItemBackground (Drawable itemBackground)

将我们的菜单项的背景设置为给定的资源。 资源应该引用可绘制对象,或者使用null来使用此导航菜单上设置的默认背景。

相关XML属性:

Parameters
itemBackground Drawable

setItemBackgroundResource

void setItemBackgroundResource (int resId)

将我们菜单项的背景设置为给定资源。

相关XML属性:

Parameters
resId int: The identifier of the resource.

setItemIconTintList

void setItemIconTintList (ColorStateList tint)

设置应用于我们菜单项的图标的色调。

相关XML属性:

Parameters
tint ColorStateList: the tint to apply.

setItemTextAppearance

void setItemTextAppearance (int resId)

将菜单项的文本外观设置为给定的资源。

相关XML属性:

Parameters
resId int

setItemTextColor

void setItemTextColor (ColorStateList textColor)

设置要在我们的菜单项上使用的文本颜色。

相关XML属性:

Parameters
textColor ColorStateList

也可以看看:

setNavigationItemSelectedListener

void setNavigationItemSelectedListener (NavigationView.OnNavigationItemSelectedListener listener)

设置一个监听器,当点击菜单项时将会收到通知。

Parameters
listener NavigationView.OnNavigationItemSelectedListener: The listener to notify

Protected methods

onAttachedToWindow

void onAttachedToWindow ()

这在视图附加到窗口时被调用。 此时它有一个Surface并将开始绘制。 请注意,此功能保证在onDraw(android.graphics.Canvas)之前onDraw(android.graphics.Canvas) ,但可以在第一次onDraw之前的任何时候调用此函数 - 包括onMeasure(int, int)之前或之后。

onDetachedFromWindow

void onDetachedFromWindow ()

这是在视图从窗口分离时调用的。 此时它不再有绘图表面。

onInsetsChanged

void onInsetsChanged (Rect insets)

Parameters
insets Rect

onMeasure

void onMeasure (int widthSpec, 
                int heightSpec)

测量视图及其内容以确定测量宽度和测量高度。 此方法由measure(int, int)调用,并应由子类覆盖以提供其内容的准确和有效的度量。

合同:覆盖此方法时, 必须致电setMeasuredDimension(int, int)来存储此视图的测量宽度和高度。 如果不这样做将触发IllegalStateException ,由measure(int, int)引发。 调用超类' onMeasure(int, int)是一个有效的用法。

Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应该覆盖onMeasure(int, int)以提供更好的内容度量。

如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()getSuggestedMinimumWidth() )。

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

onRestoreInstanceState

void onRestoreInstanceState (Parcelable savedState)

吊钩允许视图重新应用以前由onSaveInstanceState()生成的内部状态的表示。 这个函数永远不会被调用为null状态。

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

onSaveInstanceState

Parcelable onSaveInstanceState ()

钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。 此状态应仅包含不持久或以后不能重建的信息。 例如,您永远不会将当前位置存储在屏幕上,因为当视图的新实例放置在其视图层次结构中时会再次计算该位置。

您可能在此处存储的某些示例:文本视图中的当前光标位置(但通常不是文本本身,因为它存储在内容提供程序或其他永久性存储中),即当前在列表视图中选择的项目。

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.

Hooray!