strings.xml
<string name="Open_navigation_drawer">Open Navigation Drawer</string>
<string name="Close_navigation_drawer">Close Navigation Drawer</string>
sidemenu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:id="@+id/Category1"
android:checkableBehavior="single">
<item
android:id="@+id/home"
android:icon="@drawable/home"
android:title="Home" />
<item
android:id="@+id/setting"
android:icon="@drawable/settings"
android:title="Setting" />
<item
android:id="@+id/about"
android:icon="@drawable/info"
android:title="About" />
<item
android:id="@+id/category2"
android:title="Other">
<menu>
<item
android:id="@+id/fav"
android:icon="@drawable/favorite"
android:title="Favourite" />
<item
android:id="@+id/item2"
android:icon="@drawable/emoji"
android:title="Item1" />
<item
android:id="@+id/exit"
android:icon="@drawable/exit"
android:title="Exit" />
</menu>
</item>
</group>
</menu>
Activity_navigation.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.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/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start"
tools:context=".NavigationActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/primary"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:title="Navigation Drawer"
tools:ignore="MissingConstraints" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigationView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:theme="@style/navigationTheme"
app:headerLayout="@layout/header"
app:menu="@menu/sidemenu"/>
</androidx.drawerlayout.widget.DrawerLayout>
NavigationActivity.java
public class NavigationActivity extends AppCompatActivity {
DrawerLayout drawerLayout;
Toolbar toolbar;
NavigationView navigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation);
//Define IDs
drawerLayout = findViewById(R.id.drawerLayout);
navigationView = findViewById(R.id.navigationView);
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.Open_navigation_drawer, R.string.Close_navigation_drawer);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
navigationView.setCheckedItem(R.id.home);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
if (id == R.id.home) {
Intent intent = new Intent(NavigationActivity.this, NavigationActivity.class);
startActivity(intent);
} else if (id == R.id.setting) {
Toast.makeText(NavigationActivity.this, "Setting", Toast.LENGTH_SHORT).show();
} else if (id == R.id.about) {
Toast.makeText(NavigationActivity.this, "About", Toast.LENGTH_SHORT).show();
} else if (id == R.id.fav) {
Toast.makeText(NavigationActivity.this, "Favourite", Toast.LENGTH_SHORT).show();
} else if (id == R.id.item1) {
Toast.makeText(NavigationActivity.this, "Item1", Toast.LENGTH_SHORT).show();
} else {
finishAffinity();
}
drawerLayout.closeDrawer(GravityCompat.START);
return true;
}
});
}
@Override
public void onBackPressed() {
if(drawerLayout.isDrawerOpen(GravityCompat.START)){
drawerLayout.closeDrawer(GravityCompat.START);
} else{
super.onBackPressed();
}
}
}
Post a Comment