.
103-Android Studio 1.5 Navigation Drawer Activity Template
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.DrawerLayoutxmlns: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.CoordinatorLayoutxmlns: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
.
No comments:
Post a Comment