close

How to Create App Drawer in Android TUTORIAL

The Material Design squad at Google defines the functionality of a navigation drawer in Android as follows:

The navigation drawer slides in from the left and contains the navigation destinations for your app.

An example of a pop Android app that implements the navigation drawer menu design is the Inbox app from Google, which uses a navigation drawer to navigate different application sections. You can bank check it yourself past downloading the Inbox app from the Google Play store if you don't already take it on your device. The screenshot beneath shows Inbox with the navigation drawer pulled open.

navigation drawer android navigation drawer android navigation drawer android

The user can view the navigation drawer when they swipe a finger from the left edge of the activity. They can besides find it from the dwelling action (the summit level of the app) by tapping the app icon (also known as the Android "hamburger" menu) in the activeness bar.

Note that if you have many unlike destinations (more than six, say) in your app, it's recommended that y'all use a navigation drawer menu design.

In this postal service, you'll learn how to display navigation items inside a navigation drawer in Android. We'll cover how to use Jetpack navigation to perform this task. Equally a bonus, you'll also larn how to use the Android Studio templates feature to bootstrap your project with a navigation drawer chop-chop.

Prerequisites

To be able to follow this Android Studio navigation drawer tutorial, you'll demand:

  • Android Studio 3.three or higher
  • Kotlin plugin 1.i.51 or higher
  • Java viii linguistic communication features

Create an Android Studio Projection

Fire up Android Studio and create a new projection (you lot can proper noun itNavigationDrawer) with an empty activity calledMainActivity. Brand sure to as well choose theKotlinlanguage.

Create empty activity Create empty activity Create empty activity

Add Project Dependencies

Support for navigation requires some dependencies. Open the appbuild.gradle file and add together the following dependencies.

Also add the material library to the project.

Sync the project files for the changes to take outcome.

Create theDrawerLayout

To display the drawer icon on all destinations in our app, we will utilize theDrawerLayout component. Open upmain_acivity.xml and addDrawerLayout every bit the root view. The drawer layout will host two child views,NavHostFragment andNavigationView.

Here we created aDrawerLayout widget with the iddrawer_layout. Thetools:openDrawer property is used to display the navigation drawer toggle when the XML layout is open in Android Studio design view.

The official documentation says the following mostDrawerLayout:

DrawerLayout acts as a top-level container for window content that allows for interactive "drawer" views to be pulled out from one or both vertical edges of the window.

After adding theDrawerLayout widget, we included a child layout,app_bar_main.xml which points to the toolbar layout.

Here is myapp_bar_main.xml resource file. This file has aCoordinatorLayout, anAppBarLayout, and aToolbar widget.

Create a Navigation Graph

Anavigation graph is an XML resource file that contains all of your app's destinations and actions, and these destinations are connected via deportment. Beneath is an example of a navigation graph showing five fragments.

Nav graph showing 5 screens Nav graph showing 5 screens Nav graph showing 5 screens
Enter Nav graph showing 5 screens

To add together a navigation graph, right-click on the res directory and selectNew > Android Resource File. In the side by side dialog, selectNavigation as theResource Type, and clickOK. A new XML file, nav_graph.xml, will be created in the Navigation binder, equally shown below.

create a navigation graph create a navigation graph create a navigation graph
Create navigation graph

AddNavHostFragment

A navigation host fragment acts as a host for the app's fragments and swaps fragments in and out every bit necessary when the user moves from one destination to the other. These destinations accept to exist defined in the navigation graph.

Add togetherNavHostFragment to themain_activity.xml file and reference thenavGraph.

Add Fragments to the Destination Graph

Fragments represent all the destinations of your app. In our instance, we volition add three fragments to the navigation graph. Right-click the navigation folder and open nav_graph.xml. To add a fragment, click onCreate New Destination and fill up out the rest of the details.

Add fragment to navigation graph Add fragment to navigation graph Add fragment to navigation graph
Add fragment to navigation graph

Repeat the aforementioned steps and create two additional fragments, the profile fragment and the settings fragment. Your navigation graph should now look similar this.

navigation graph navigation graph navigation graph

Add aNavigationView Component

Finally, let's create  aNavigationView widget. The official documentation says the following aboutNavigationView:

NavigationView represents a standard navigation menu for application. The bill of fare contents can be populated by a menu resource file.

Open upmain_activity.xml and add together theNavigationView.

In theNavigationView XML widget, you can encounter that we added anandroid:layout_gravity attribute with the value start. This is used to position the drawer—y'all desire the navigation drawer carte du jour design to come out from the left or right (the first or terminate on platform versions that support layout management). In our ain case, the drawer will come out from the left.

We too included anapp:headerLayout attribute, which points to@layout/nav_header_main. This will add aView as a header of the navigation carte.

Here is mynav_header_main.xml layout resources file:

To include the menu items for the navigation drawer, we can use the aspectapp:card with a value that points to a card resource file.

Here is theres/card/drawer_menu.xml menu resources file:

Hither nosotros have divers aMenu using the<menu> which serves equally a container for menu items. An <item> creates aMenuItem, which represents a single item in a menu. It's also important to note that the ids of the menu items correspond to the ids of the matching fragment.

Note that when showing the navigation listing items from a menu resource, we could utilize aListView instead. But, past configuring the navigation drawer with a menu resources, we get the material design styling on the navigation drawer for gratuitous! If you lot used aListView, you'd take to maintain the list and also style it to run across the recommended fabric design specs for the navigation drawer.

Initialization of Components

Next, we are going to initialize instances of all our components. Initialization is going to happen withinonCreate() inMainActivity.kt.

TheAppBarConfiguration object is used to manage the behavior of the navigation drawer button.

First, we use the setSupportActionBar() method to set the toolbar equally the app bar for the activity.

Side by side, we set all fragments as meridian-level destinations, this means that they will remain in the dorsum stack when navigating.

The method setupActionBarWithNavController  automatically updates the championship in the action bar when the destination changes.

Set up upwards the navigation drawer.

Lastly, show the up button that appears at the top left of the app bar. This is done by integrating the navigation controller withe app bar using the onSupportNavigateUp method.

The final code forMainActivity.kt should look like this.

Testing the App

At this indicate, we can run the app!

navigation drawer navigation drawer navigation drawer

Bonus: Using Android Studio Templates

At present that y'all've learnt about the APIs involved to create a navigation drawer, I'll show yous a shortcut that will make information technology faster next time. You tin can only use a template instead of coding a navigation drawer Activity from scratch.

Android Studio provides code templates that follow the Android design and development best practices. These existing code templates (available in Java and Kotlin) can help you rapidly kicking-beginning your projection. I such template can be used to create a navigation drawer activity.

I'll show yous how to use this handy feature in Android Studio.

For a new project, fire up Android Studio.

Android Navigation Drawer Design Tutorial Create Android Project dialog Android Navigation Drawer Design Tutorial Create Android Project dialog Android Navigation Drawer Design Tutorial Create Android Project dialog

Enter the application name and click theNext button.

Yous can leave the defaults every bit they're in theTarget Android Devices dialog. Click theNext button once more.

Android Navigation Drawer Design Tutorial Add an Activity to Mobile dialog Android Navigation Drawer Design Tutorial Add an Activity to Mobile dialog Android Navigation Drawer Design Tutorial Add an Activity to Mobile dialog

In theAdd together  an Activity to Mobile dialog, curl downwardly and selectNavigation Drawer Action.Click theNext push afterward that.

Android Navigation Drawer Design Tutorial Configure Activity dialog Android Navigation Drawer Design Tutorial Configure Activity dialog Android Navigation Drawer Design Tutorial Configure Activity dialog

In the last dialog, y'all can rename the Activity name, layout name, or title if y'all desire. Finally, click the Finish button to take all configurations.

Android Studio has at present helped usa to create a project with a navigation drawer activity. Really absurd! Y'all're strongly advised to explore the code generated.

You can use templates for an already existing Android Studio projection too. Only go toFile > New > Activeness > Navigation Drawer Activeness.

Android Navigation Drawer Design Tutorial Navigation from file menu too Navigation Drawer Activity Android Navigation Drawer Design Tutorial Navigation from file menu too Navigation Drawer Activity Android Navigation Drawer Design Tutorial Navigation from file menu too Navigation Drawer Activity

Top Android App Templates With Navigation Drawers From CodeCanyon

The templates that come included with Android Studio are proficient for unproblematic layouts and making basic apps, but if you want to kicking-commencement your app even further, you might consider some of the app templates available from Envato Market.

They're a huge time-saver for experienced developers, helping them to cut through the slog of creating an app from scratch and focus their talents instead on the unique and customised parts of creating a new app.

Here are just a small-scale handful of the thousands of Android app templates available on CodeCanyon. If in that location's i that piques your interest, you tin easily get started past making a buy.

Grocery and Vegetable Commitment Android App with Admin Panel

If you or your customer accept a food commitment business, getting an app up and running is crucial. That's why you lot should consider this multi-store grocery service app template. It includes iii templates with stunning layouts and Android hamburger menus. There's no limit to the categories y'all can add, and you lot can likewise employ SMS and electronic mail social club notifications.

Grocery and Vegetable Delivery Android App Template Grocery and Vegetable Delivery Android App Template Grocery and Vegetable Delivery Android App Template

Universal: Total Multi-Purpose Android App

Buying the Universal Android app template is just similar downloading a Swiss Army knife. It can do it all, from WordPress and Facebook to Twitter and SoundCloud. In fact, there is a list of more than than 15 content providers that this template supports. Users can admission important information from the slick side menu pattern and easily make their way around their favorite sites.

Universal Multi Purpose Android App Template Universal Multi Purpose Android App Template Universal Multi Purpose Android App Template

MaterialX: Android Material Design UI Components 2.7

MaterialX is a recommended download for any app developer. It includes more than than 315 unique UI components across more than than 31 categories. Create stunning Android side menu designs, buttons, dialog boxes, and more from this single download. If you want a quick way to add some much-needed style to your new project, get this template.

MaterialX Android Material Design UI Components Download MaterialX Android Material Design UI Components Download MaterialX Android Material Design UI Components Download

Universal Android WebView App

Do you take content hosted online that yous want to plough into a mobile experience? Then check out the Universal Android WebView App template. It was developed in Android Studio and supports phones and tablets running Android 4.1 and to a higher place. The Android navigation drawer menu design is completely customizable, as are other components. Information technology also supports AdMob for monetization.

Universal Android WebView App Template Universal Android WebView App Template Universal Android WebView App Template

Android Wallpapers App

Here'south a cool Android app template that's useful if y'all desire to get your creative designs out into the world. The Android Wallpapers app supports static images, GIFs, and 4K photos. This template likewise includes useful features like:

  • pinch to zoom
  • push button notifications
  • AdMob advert support
  • Android Studio code

Android Wallpapers App Template Android Wallpapers App Template Android Wallpapers App Template

Conclusion

In this tutorial, yous learned how to create a navigation drawer bill of fare design in Android from scratch, using Jetpack navigation. Nosotros also explored how easy and quick it is to apply Android Studio templates to create a navigation drawer.

I highly recommend checking out the official textile design guidelines for navigation drawers to learn more about how to properly blueprint and use navigation drawers in Android.

To learn more than nigh coding for Android, check out some of our other courses and tutorials here on Envato Tuts+!

This mail has been updated with contributions from Nathan Umoh. Nathan is a staff writer for Envato Tuts+.

DOWNLOAD HERE

How to Create App Drawer in Android TUTORIAL

Posted by: ameliatherboys.blogspot.com

Comments