diff --git a/samples/SupportDesignDemos/AndroidManifest.xml b/samples/SupportDesignDemos/AndroidManifest.xml
index f998dccc3..8fcdf3827 100644
--- a/samples/SupportDesignDemos/AndroidManifest.xml
+++ b/samples/SupportDesignDemos/AndroidManifest.xml
@@ -45,6 +45,15 @@
+
+
+
+
+
+
+
diff --git a/samples/SupportDesignDemos/res/drawable-hdpi/ic_action_navigation_menu.png b/samples/SupportDesignDemos/res/drawable-hdpi/ic_action_navigation_menu.png
new file mode 100644
index 000000000..743fd7dad
Binary files /dev/null and b/samples/SupportDesignDemos/res/drawable-hdpi/ic_action_navigation_menu.png differ
diff --git a/samples/SupportDesignDemos/res/drawable-hdpi/ic_android.png b/samples/SupportDesignDemos/res/drawable-hdpi/ic_android.png
new file mode 100644
index 000000000..94b8fb1fa
Binary files /dev/null and b/samples/SupportDesignDemos/res/drawable-hdpi/ic_android.png differ
diff --git a/samples/SupportDesignDemos/res/drawable-mdpi/ic_action_navigation_menu.png b/samples/SupportDesignDemos/res/drawable-mdpi/ic_action_navigation_menu.png
new file mode 100644
index 000000000..4fa2c22e8
Binary files /dev/null and b/samples/SupportDesignDemos/res/drawable-mdpi/ic_action_navigation_menu.png differ
diff --git a/samples/SupportDesignDemos/res/drawable-mdpi/ic_android.png b/samples/SupportDesignDemos/res/drawable-mdpi/ic_android.png
new file mode 100644
index 000000000..afc43dbdd
Binary files /dev/null and b/samples/SupportDesignDemos/res/drawable-mdpi/ic_android.png differ
diff --git a/samples/SupportDesignDemos/res/drawable-xhdpi/ic_action_navigation_menu.png b/samples/SupportDesignDemos/res/drawable-xhdpi/ic_action_navigation_menu.png
new file mode 100644
index 000000000..595da84a5
Binary files /dev/null and b/samples/SupportDesignDemos/res/drawable-xhdpi/ic_action_navigation_menu.png differ
diff --git a/samples/SupportDesignDemos/res/drawable-xhdpi/ic_android.png b/samples/SupportDesignDemos/res/drawable-xhdpi/ic_android.png
new file mode 100644
index 000000000..74c6f686a
Binary files /dev/null and b/samples/SupportDesignDemos/res/drawable-xhdpi/ic_android.png differ
diff --git a/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_action_navigation_menu.png b/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_action_navigation_menu.png
new file mode 100644
index 000000000..3ebee249a
Binary files /dev/null and b/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_action_navigation_menu.png differ
diff --git a/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_android.png b/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_android.png
new file mode 100644
index 000000000..5cb6acd8d
Binary files /dev/null and b/samples/SupportDesignDemos/res/drawable-xxhdpi/ic_android.png differ
diff --git a/samples/SupportDesignDemos/res/drawable-xxxhdpi/ic_android.png b/samples/SupportDesignDemos/res/drawable-xxxhdpi/ic_android.png
new file mode 100644
index 000000000..e302a0784
Binary files /dev/null and b/samples/SupportDesignDemos/res/drawable-xxxhdpi/ic_android.png differ
diff --git a/samples/SupportDesignDemos/res/layout/design_navigation.xml b/samples/SupportDesignDemos/res/layout/design_navigation.xml
new file mode 100644
index 000000000..22e900a70
--- /dev/null
+++ b/samples/SupportDesignDemos/res/layout/design_navigation.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/SupportDesignDemos/res/layout/design_navigation_header.xml b/samples/SupportDesignDemos/res/layout/design_navigation_header.xml
new file mode 100644
index 000000000..a03f0bb5b
--- /dev/null
+++ b/samples/SupportDesignDemos/res/layout/design_navigation_header.xml
@@ -0,0 +1,26 @@
+
+
+
+
diff --git a/samples/SupportDesignDemos/res/menu/navigation.xml b/samples/SupportDesignDemos/res/menu/navigation.xml
new file mode 100644
index 000000000..b399ef3a9
--- /dev/null
+++ b/samples/SupportDesignDemos/res/menu/navigation.xml
@@ -0,0 +1,71 @@
+
+
+
diff --git a/samples/SupportDesignDemos/res/values-v21/styles.xml b/samples/SupportDesignDemos/res/values-v21/styles.xml
new file mode 100644
index 000000000..8faf5e6b7
--- /dev/null
+++ b/samples/SupportDesignDemos/res/values-v21/styles.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
diff --git a/samples/SupportDesignDemos/res/values/strings.xml b/samples/SupportDesignDemos/res/values/strings.xml
index 7bcfb814e..b2cb6d743 100644
--- a/samples/SupportDesignDemos/res/values/strings.xml
+++ b/samples/SupportDesignDemos/res/values/strings.xml
@@ -18,12 +18,29 @@
Support Design Demos
Floating Action Button/Basic
+ NavigationView/Usage
TabLayout/Usage
Text Input
Normal size
Mini size
+ Open
+ Close
+ Item with icon
+ Item without icon
+ Clicked: \"%s\"
+ Header
+ Item 1
+ Item 2
+ Item 3
+ Item 4 (disabled)
+ 1
+ Invisible
+ Subheader
+ Subitem 1
+ Subitem 2
+
Fixed
Scrollable
Center
diff --git a/samples/SupportDesignDemos/res/values/styles.xml b/samples/SupportDesignDemos/res/values/styles.xml
index ec0588890..a63f93f33 100644
--- a/samples/SupportDesignDemos/res/values/styles.xml
+++ b/samples/SupportDesignDemos/res/values/styles.xml
@@ -30,4 +30,17 @@
- #ff0000
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewUsage.java b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewUsage.java
new file mode 100644
index 000000000..46a57b542
--- /dev/null
+++ b/samples/SupportDesignDemos/src/com/example/android/support/design/widget/NavigationViewUsage.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.example.android.support.design.widget;
+
+import com.example.android.support.design.R;
+
+import android.os.Bundle;
+import android.support.design.widget.NavigationView;
+import android.support.v4.view.GravityCompat;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.util.TypedValue;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.TextView;
+import android.widget.Toast;
+
+/**
+ * This demonstrates basic usage of NavigationView
+ */
+public class NavigationViewUsage extends AppCompatActivity {
+
+ private DrawerLayout mDrawerLayout;
+
+ private TextView mTextMessage;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.design_navigation);
+
+ mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
+ mTextMessage = (TextView) findViewById(R.id.message);
+
+ // Set the color of status bar
+ TypedValue value = new TypedValue();
+ getTheme().resolveAttribute(R.attr.colorPrimaryDark, value, true);
+ mDrawerLayout.setStatusBarBackgroundColor(value.data);
+
+ // Retrieve the Toolbar from our content view, and set it as the action bar
+ Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+
+ // Toggle icon
+ toolbar.setNavigationIcon(R.drawable.ic_action_navigation_menu);
+ toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ mDrawerLayout.openDrawer(GravityCompat.START);
+ }
+ });
+
+ // Menu
+ NavigationView navigation = (NavigationView) findViewById(R.id.navigation);
+ getMenuInflater().inflate(R.menu.navigation, navigation.getMenu());
+ navigation.setNavigationItemSelectedListener(mNavigationItemSelectedListener);
+ navigation.inflateHeaderView(R.layout.design_navigation_header);
+ }
+
+ private NavigationView.OnNavigationItemSelectedListener mNavigationItemSelectedListener
+ = new NavigationView.OnNavigationItemSelectedListener() {
+ @Override
+ public boolean onNavigationItemSelected(MenuItem item) {
+ if (handleNavigationItemSelected(item)) {
+ mDrawerLayout.closeDrawers();
+ return true;
+ }
+ return false;
+ }
+ };
+
+ private boolean handleNavigationItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.navigation_item_1:
+ mTextMessage.setText("1");
+ item.setChecked(true);
+ return true;
+ case R.id.navigation_item_2:
+ mTextMessage.setText("2");
+ item.setChecked(true);
+ return true;
+ case R.id.navigation_item_3:
+ mTextMessage.setText("3");
+ item.setChecked(true);
+ return true;
+ case R.id.navigation_sub_item_1:
+ showToast(R.string.navigation_sub_item_1);
+ return true;
+ case R.id.navigation_sub_item_2:
+ showToast(R.string.navigation_sub_item_2);
+ return true;
+ case R.id.navigation_with_icon:
+ showToast(R.string.navigation_item_with_icon);
+ return true;
+ case R.id.navigation_without_icon:
+ showToast(R.string.navigation_item_without_icon);
+ return true;
+ default:
+ return false;
+ }
+ }
+
+ private void showToast(int res) {
+ Toast.makeText(this, getString(R.string.navigation_message, getString(res)),
+ Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void onBackPressed() {
+ if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
+ mDrawerLayout.closeDrawer(GravityCompat.START);
+ } else {
+ super.onBackPressed();
+ }
+ }
+
+}