How to use Navigation Drawer||Custom Navigation Drawer in Android Studieo.
how to create Navigation Drawer Activity.
Step 1:
--------
//add to gradle.properties.
android.enableJetifier=true
add
//noinspection GradleCompatible to build gradle.
implementation 'com.android.support:design:28.0.0'
//sync now
step 2
------------
//make themes
Theme.AppCompat.Light.NoActionBar
step 3
------------
change layout to
androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawerLayout"
tools:openDrawer="start"
Step 4
------------
//////////////////////////////////////////////////
//create
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/teal_200"
app:title="Navigation Drawer"
>
</androidx.appcompat.widget.Toolbar>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
</LinearLayout>
</RelativeLayout>
//////////////////////////////////////////////////////
step 5
------------
//create a new layout as headerlayout
step 6
------------
create a menu direcory forome Android Resource diroctory and then create a menu resource file in it.
create items in it like this.
==================================================================================
<item android:title="Main Title Here">
</item>
<group>
<item android:id="@+id/menu_home"
android:title="Home"
android:icon="@drawable/baseline_home_24"
>
</item>
<item android:id="@+id/menu_share"
android:title="Share"
android:icon="@drawable/baseline_share_24"
>
</item>
</group>
<group
android:checkableBehavior="none"
>
<item android:id="@+id/menu_contact"
android:title="Contact"
android:icon="@drawable/baseline_tag_faces_24"
>
</item>
</group>
<item
android:title="About App"
>
<menu>
<item android:id="@+id/menu_Rate"
android:title="Rate us"
android:icon="@drawable/baseline_star_rate_24"
>
</item>
</menu>
</item>
=============================================================================
step 7
-------------
create NavigationView outside relative layout in mainactivity.xml
<com.google.android.material.navigation.NavigationView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/navmenu"
app:menu="@menu/my_menu"
app:headerLayout="@layout/headerlayout"
android:layout_gravity="start"
>
</com.google.android.material.navigation.NavigationView>
step 8
-------------
JAVA
NavigationView nav;
ActionBarDrawerToggle toggle;
DrawerLayout drawerLayout;
Toolbar toolbar;
//After setContentView
//===================================================================================
//==NavigationView=================================================================================
toolbar= findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
nav = findViewById(R.id.navmenu);
drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
toggle=new ActionBarDrawerToggle(this,drawerLayout,toolbar,R.string.open,R.string.close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
nav.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.menu_home:
Toast.makeText(getApplicationContext(),"Home is Open", Toast.LENGTH_SHORT).show();
//startActivity(MainActivity.this,AnotherActivity.class);
drawerLayout.closeDrawer(GravityCompat.START);
break;
case R.id.menu_share:
Toast.makeText(getApplicationContext(),"Share is Open",Toast.LENGTH_SHORT).show();
drawerLayout.closeDrawer(GravityCompat.START);
break;
case R.id.menu_contact:
Toast.makeText(getApplicationContext(),"Contact is Open",Toast.LENGTH_SHORT).show();
drawerLayout.closeDrawer(GravityCompat.START);
break;
case R.id.menu_Rate:
Toast.makeText(getApplicationContext(),"menu_Rate is Open",Toast.LENGTH_SHORT).show();
drawerLayout.closeDrawer(GravityCompat.START);
break;
}
return true;
}
});
//==NavigationView============================================================================================
//==============================================================================================
No comments