Published using Google Docs
103-Android Studio 1.5 Navigation Drawer Activity Template
Updated automatically every 5 minutes

103-Android Studio 1.5 Navigation Drawer Activity Template

1) Create New Project

1.1) Configure New Project

1.2) Select Target Device

1.3) Add Activity

1.4) Customize the Activity

2) Observe the project codes

2.1) build.gradle (module:app)

2.2) AndroidManifest.xml

2.3) MainActivity.java

3) Navigation Drawer Project UI Layout

3.1) res/layout/activity_main.xml

3.2) res/layout/app_bar_main

3.3) res/layout/nav_header_main.xml

3.4) res/layout/content_main.xml

DOWNLOAD

Continue from Tutorial 102

1) Create New Project

1.1) Configure New Project

Application Name: MyDrawer1

Company Domain: notarazi.com

Package Name: com.notarazi.mydrawer1 (auto-generated)

Project Location: C:\Project1\MyDrawer1\ (auto-generated)

1.2) Select Target Device

1.3) Add Activity

Select Navigation Drawer Activity.

1.4) Customize the Activity

Accept defaults.

2) Observe the project codes

2.1) build.gradle (module:app)

apply plugin: 'com.android.application'

android {

   compileSdkVersion 23

   buildToolsVersion "23.0.2"

   defaultConfig {

       applicationId "com.notarazi.mydrawer1"

       minSdkVersion 15

       targetSdkVersion 23

       versionCode 1

       versionName "1.0"

   }

   buildTypes {

       release {

           minifyEnabled false

           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

       }

   }

}

dependencies {

   compile fileTree(dir: 'libs', include: ['*.jar'])

   testCompile 'junit:junit:4.12'

   compile 'com.android.support:appcompat-v7:23.1.1'

   compile 'com.android.support:design:23.1.1'

}

2.2) AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

   package="com.notarazi.mydrawer1">

   <application

       android:allowBackup="true"

       android:icon="@mipmap/ic_launcher"

       android:label="@string/app_name"

       android:supportsRtl="true"

       android:theme="@style/AppTheme">

       <activity

           android:name=".MainActivity"

           android:label="@string/app_name"

           android:theme="@style/AppTheme.NoActionBar">

           <intent-filter>

               <action android:name="android.intent.action.MAIN" />

               <category android:name="android.intent.category.LAUNCHER" />

           </intent-filter>

       </activity>

   </application>

</manifest>

2.3) MainActivity.java

package com.notarazi.mydrawer1;

import android.os.Bundle;

import android.support.design.widget.FloatingActionButton;

import android.support.design.widget.Snackbar;

import android.view.View;

import android.support.design.widget.NavigationView;

import android.support.v4.view.GravityCompat;

import android.support.v4.widget.DrawerLayout;

import android.support.v7.app.ActionBarDrawerToggle;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.Toolbar;

import android.view.Menu;

import android.view.MenuItem;

public class MainActivity extends AppCompatActivity

       implements NavigationView.OnNavigationItemSelectedListener {

   @Override

   protected void onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.activity_main);

       Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

       setSupportActionBar(toolbar);

       FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

       fab.setOnClickListener(new View.OnClickListener() {

           @Override

           public void onClick(View view) {

               Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)

                       .setAction("Action", null).show();

           }

       });

       DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

       ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(

               this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);

       drawer.setDrawerListener(toggle);

       toggle.syncState();

       NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);

       navigationView.setNavigationItemSelectedListener(this);

   }

   @Override

   public void onBackPressed() {

       DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

       if (drawer.isDrawerOpen(GravityCompat.START)) {

           drawer.closeDrawer(GravityCompat.START);

       } else {

           super.onBackPressed();

       }

   }

   @Override

   public boolean onCreateOptionsMenu(Menu menu) {

       // Inflate the menu; this adds items to the action bar if it is present.

       getMenuInflater().inflate(R.menu.main, menu);

       return true;

   }

   @Override

   public boolean onOptionsItemSelected(MenuItem item) {

       // Handle action bar item clicks here. The action bar will

       // automatically handle clicks on the Home/Up button, so long

       // as you specify a parent activity in AndroidManifest.xml.

       int id = item.getItemId();

       //noinspection SimplifiableIfStatement

       if (id == R.id.action_settings) {

           return true;

       }

       return super.onOptionsItemSelected(item);

   }

   @SuppressWarnings("StatementWithEmptyBody")

   @Override

   public boolean onNavigationItemSelected(MenuItem item) {

       // Handle navigation view item clicks here.

       int id = item.getItemId();

       if (id == R.id.nav_camera) {

           // Handle the camera action

       } else if (id == R.id.nav_gallery) {

       } else if (id == R.id.nav_slideshow) {

       } else if (id == R.id.nav_manage) {

       } else if (id == R.id.nav_share) {

       } else if (id == R.id.nav_send) {

       }

       DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);

       drawer.closeDrawer(GravityCompat.START);

       return true;

   }

}

3) Navigation Drawer Project UI Layout

3.1) res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:app="http://schemas.android.com/apk/res-auto"

   xmlns:tools="http://schemas.android.com/tools"

   android:id="@+id/drawer_layout"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   android:fitsSystemWindows="true"

   tools:openDrawer="start">

   <include

       layout="@layout/app_bar_main"

       android:layout_width="match_parent"

       android:layout_height="match_parent" />

   <android.support.design.widget.NavigationView

       android:id="@+id/nav_view"

       android:layout_width="wrap_content"

       android:layout_height="match_parent"

       android:layout_gravity="start"

       android:fitsSystemWindows="true"

       app:headerLayout="@layout/nav_header_main"

       app:menu="@menu/activity_main_drawer" />

</android.support.v4.widget.DrawerLayout>

3.2) res/layout/app_bar_main

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:app="http://schemas.android.com/apk/res-auto"

   xmlns:tools="http://schemas.android.com/tools"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   android:fitsSystemWindows="true"

   tools:context="com.notarazi.mydrawer1.MainActivity">

   <android.support.design.widget.AppBarLayout

       android:layout_width="match_parent"

       android:layout_height="wrap_content"

       android:theme="@style/AppTheme.AppBarOverlay">

       <android.support.v7.widget.Toolbar

           android:id="@+id/toolbar"

           android:layout_width="match_parent"

           android:layout_height="?attr/actionBarSize"

           android:background="?attr/colorPrimary"

           app:popupTheme="@style/AppTheme.PopupOverlay" />

   </android.support.design.widget.AppBarLayout>

   <include layout="@layout/content_main" />

   <android.support.design.widget.FloatingActionButton

       android:id="@+id/fab"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:layout_gravity="bottom|end"

       android:layout_margin="@dimen/fab_margin"

       android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

3.3) res/layout/nav_header_main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

   android:layout_width="match_parent"

   android:layout_height="@dimen/nav_header_height"

   android:background="@drawable/side_nav_bar"

   android:gravity="bottom"

   android:orientation="vertical"

   android:paddingBottom="@dimen/activity_vertical_margin"

   android:paddingLeft="@dimen/activity_horizontal_margin"

   android:paddingRight="@dimen/activity_horizontal_margin"

   android:paddingTop="@dimen/activity_vertical_margin"

   android:theme="@style/ThemeOverlay.AppCompat.Dark">

   <ImageView

       android:id="@+id/imageView"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:paddingTop="@dimen/nav_header_vertical_spacing"

       android:src="@android:drawable/sym_def_app_icon" />

   <TextView

       android:layout_width="match_parent"

       android:layout_height="wrap_content"

       android:paddingTop="@dimen/nav_header_vertical_spacing"

       android:text="Android Studio"

       android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

   <TextView

       android:id="@+id/textView"

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="android.studio@android.com" />

</LinearLayout>

3.4) res/layout/content_main.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:app="http://schemas.android.com/apk/res-auto"

   xmlns:tools="http://schemas.android.com/tools"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   android:paddingBottom="@dimen/activity_vertical_margin"

   android:paddingLeft="@dimen/activity_horizontal_margin"

   android:paddingRight="@dimen/activity_horizontal_margin"

   android:paddingTop="@dimen/activity_vertical_margin"

   app:layout_behavior="@string/appbar_scrolling_view_behavior"

   tools:context="com.notarazi.mydrawer1.MainActivity"

   tools:showIn="@layout/app_bar_main">

   <TextView

       android:layout_width="wrap_content"

       android:layout_height="wrap_content"

       android:text="Hello World!" />

</RelativeLayout>

DOWNLOAD

103-MyDrawer1.zip