U can add ListView or Recycler View as navigation drawer
just u required a xml tag in your view is
android:layout_gravity="start" // This is indicates your navigation drawer
after that your layout should be like below (You can replace Recyclerview with Listview)
RelativeLayout rl_drawer_nav_bar will work as a navigation drawer.
After this you doesn't required inbuilt provided NavigationDrawer View
<?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">
<LinearLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/toolbar" />
</LinearLayout>
<RelativeLayout
android:id="@+id/rl_drawer_nav_bar"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start">
<RelativeLayout
android:id="@+id/rl_drawer_main_header_title_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp">
<ImageView
android:id="@+id/iv_drawer_user_image"
android:layout_width="110dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:contentDescription="@string/app_name"
android:src="@drawable/menu_logo" />
<TextView
android:id="@+id/tv_drawer_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_centerVertical="true" />
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/rv_drawer_menu_list"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_below="@+id/rl_drawer_main_header_title_bar"
android:layout_gravity="start"
android:choiceMode="singleChoice" />
</RelativeLayout>
</android.support.v4.widget.DrawerLayout>
After your API response pars JSON to List YourMenuModel and
YourCustomAdapter adapter = new YourCustomAdapter(yourMenuModelList)
Whenever your menu list changes or updates or you adds new menu, just call
adapter.notifyDataSetChanged().