title: How to Adjust the width of navigation drawer in android studio
body: <p>I downloaded a navigation template, and I want to adjust the width of navigation. I've tried different methods but I think nothing suited. How can I solve my problem? I can't adjust the width of the navigation drawer. </p>
  
  <p>This is my code for the NavigationalDrawerFragment.java</p>
  
  <pre><code>package com.example.user.navigationkamo;
  
   import android.app.Activity;
   import android.app.Fragment;
   import android.content.SharedPreferences;
   import android.content.res.Configuration;
   import android.content.res.Resources;
   import android.graphics.Bitmap;
   import android.graphics.BitmapShader;
   import android.graphics.Canvas;
   import android.graphics.ColorFilter;
   import android.graphics.Paint;
   import android.graphics.PixelFormat;
   import android.graphics.Rect;
   import android.graphics.RectF;
   import android.graphics.Shader;
   import android.graphics.drawable.Drawable;
   import android.os.Bundle;
   import android.preference.PreferenceManager;
   import android.support.v7.app.ActionBarDrawerToggle;
   import android.support.v4.widget.DrawerLayout;
   import android.support.v7.widget.LinearLayoutManager;
   import android.support.v7.widget.RecyclerView;
   import android.support.v7.widget.Toolbar;
   import android.util.TypedValue;
   import android.view.LayoutInflater;
   import android.view.View;
   import android.view.ViewGroup;
   import android.widget.ImageView;
   import android.widget.TextView;
  
   import java.util.ArrayList;
   import java.util.List;
  
  /**
  * Fragment used for managing interactions for and presentation of a navigation drawer.
  * See the &lt;a href="https://developer.android.com/design/patterns/navigation-drawer.html#Interaction"&gt;
  * design guidelines&lt;/a&gt; for a complete explanation of the behaviors implemented here.
  */
  public class NavigationDrawerFragment extends Fragment implements NavigationDrawerCallbacks {
  
  /**
   * Remember the position of the selected item.
   */
  private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position";
  
  /**
   * Per the design guidelines, you should show the drawer on launch until the user manually
   * expands it. This shared preference tracks this.
   */
  private static final String PREF_USER_LEARNED_DRAWER = "navigation_drawer_learned";
  
  /**
   * A pointer to the current callbacks instance (the Activity).
   */
  private NavigationDrawerCallbacks mCallbacks;
  
  /**
   * Helper component that ties the action bar to the navigation drawer.
   */
  private ActionBarDrawerToggle mActionBarDrawerToggle;
  
  private DrawerLayout mDrawerLayout;
  private RecyclerView mDrawerList;
  private View mFragmentContainerView;
  
  private int mCurrentSelectedPosition = 0;
  private boolean mFromSavedInstanceState;
  private boolean mUserLearnedDrawer;
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
      // Read in the flag indicating whether or not the user has demonstrated awareness of the
      // drawer. See PREF_USER_LEARNED_DRAWER for details.
      SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
      mUserLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false);
  
      if (savedInstanceState != null) {
          mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION);
          mFromSavedInstanceState = true;
      }
  }
  
  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                           Bundle savedInstanceState) {
      View view = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);
      mDrawerList = (RecyclerView) view.findViewById(R.id.drawerList);
      LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
      layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
      mDrawerList.setLayoutManager(layoutManager);
      mDrawerList.setHasFixedSize(true);
  
      final List&lt;NavigationItem&gt; navigationItems = getMenu();
      NavigationDrawerAdapter adapter = new NavigationDrawerAdapter(navigationItems);
      adapter.setNavigationDrawerCallbacks(this);
      mDrawerList.setAdapter(adapter);
      selectItem(mCurrentSelectedPosition);
      return view;
  }
  
  public void setUp(int fragmentId, DrawerLayout drawerLayout) {
      mDrawerLayout = drawerLayout;
      mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
  }
  
  
  
  public boolean isDrawerOpen() {
  
      return mDrawerLayout != null &amp;&amp; mDrawerLayout.isDrawerOpen(mFragmentContainerView);
  }
  
  public ActionBarDrawerToggle getActionBarDrawerToggle() {
      return mActionBarDrawerToggle;
  }
  
  public DrawerLayout getDrawerLayout() {
      return mDrawerLayout;
  }
  
  @Override
  public void onNavigationDrawerItemSelected(int position) {
      selectItem(position);
  }
  
  public List&lt;NavigationItem&gt; getMenu() {
      List&lt;NavigationItem&gt; items = new ArrayList&lt;NavigationItem&gt;();
      items.add(new NavigationItem("Driver Details", getResources().getDrawable(R.drawable.ic_driver)));
      items.add(new NavigationItem("Track Me", getResources().getDrawable(R.drawable.ic_track)));
      items.add(new NavigationItem("Contact", getResources().getDrawable(R.drawable.ic_contact)));
      items.add(new NavigationItem("Report Driver", getResources().getDrawable(R.drawable.ic_report)));
      items.add(new NavigationItem("Call for Emergency", getResources().getDrawable(R.drawable.ic_call)));
      items.add(new NavigationItem("Rate Taxi", getResources().getDrawable(R.drawable.ic_rate)));
      items.add(new NavigationItem("Favorites", getResources().getDrawable(R.drawable.ic_favorite)));
      items.add(new NavigationItem("Top Drivers", getResources().getDrawable(R.drawable.ic_top)));
      items.add(new NavigationItem("Security Tips", getResources().getDrawable(R.drawable.ic_security)));
      return items;
  }
  
  /**
   * Users of this fragment must call this method to set up the navigation drawer interactions.
   *
   * @param fragmentId   The android:id of this fragment in its activity's layout.
   * @param drawerLayout The DrawerLayout containing this fragment's UI.
   * @param toolbar      The Toolbar of the activity.
   */
  public void setup(int fragmentId, DrawerLayout drawerLayout, Toolbar toolbar) {
      mFragmentContainerView = getActivity().findViewById(fragmentId);
      mDrawerLayout = drawerLayout;
  
      mDrawerLayout.setStatusBarBackgroundColor(getResources().getColor(R.color.myPrimaryDarkColor));
  
      mActionBarDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
          @Override
          public void onDrawerClosed(View drawerView) {
  
  
              super.onDrawerClosed(drawerView);
              if (!isAdded()) return;
  
              getActivity().invalidateOptionsMenu(); // calls onPrepareOptionsMenu()
          }
  
          @Override
          public void onDrawerOpened(View drawerView) {
  
              super.onDrawerOpened(drawerView);
              if (!isAdded()) return;
              if (!mUserLearnedDrawer) {
                  mUserLearnedDrawer = true;
                  SharedPreferences sp = PreferenceManager
                          .getDefaultSharedPreferences(getActivity());
                  sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply();
              }
              getActivity().invalidateOptionsMenu(); // calls onPrepareOptionsMenu()
          }
      };
  
      // If the user hasn't 'learned' about the drawer, open it to introduce them to the drawer,
      // per the navigation drawer design guidelines.
      if (!mUserLearnedDrawer &amp;&amp; !mFromSavedInstanceState) {
          mDrawerLayout.openDrawer(mFragmentContainerView);
      }
  
      // Defer code dependent on restoration of previous instance state.
      mDrawerLayout.post(new Runnable() {
          @Override
          public void run() {
              mActionBarDrawerToggle.syncState();
          }
      });
  
      mDrawerLayout.setDrawerListener(mActionBarDrawerToggle);
  }
  
  private void selectItem(int position) {
      mCurrentSelectedPosition = position;
      if (mDrawerLayout != null) {
          mDrawerLayout.closeDrawer(mFragmentContainerView);
      }
      if (mCallbacks != null) {
          mCallbacks.onNavigationDrawerItemSelected(position);
      }
      ((NavigationDrawerAdapter) mDrawerList.getAdapter()).selectPosition(position);
  }
  
  public void openDrawer() {
      mDrawerLayout.openDrawer(mFragmentContainerView);
  }
  
  public void closeDrawer() {
      mDrawerLayout.closeDrawer(mFragmentContainerView);
  }
  
  @Override
  public void onAttach(Activity activity) {
      super.onAttach(activity);
      try {
          mCallbacks = (NavigationDrawerCallbacks) activity;
      } catch (ClassCastException e) {
          throw new ClassCastException("Activity must implement NavigationDrawerCallbacks.");
      }
  }
  
  @Override
  public void onDetach() {
      super.onDetach();
      mCallbacks = null;
  }
  
  @Override
  public void onSaveInstanceState(Bundle outState) {
      super.onSaveInstanceState(outState);
      outState.putInt(STATE_SELECTED_POSITION, mCurrentSelectedPosition);
  }
  
  @Override
  public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
      // Forward the new configuration the drawer toggle component.
      mActionBarDrawerToggle.onConfigurationChanged(newConfig);
  }
  
  public void setUserData(String user, String email, Bitmap avatar) {
      ImageView avatarContainer = (ImageView) mFragmentContainerView.findViewById(R.id.imgAvatar);
      ((TextView) mFragmentContainerView.findViewById(R.id.txtUserEmail)).setText(email);
      ((TextView) mFragmentContainerView.findViewById(R.id.txtUsername)).setText(user);
      avatarContainer.setImageDrawable(new RoundImage(avatar));
  }
  
  public View getGoogleDrawer() {
      return mFragmentContainerView.findViewById(R.id.googleDrawer);
  }
  
  public static class RoundImage extends Drawable {
      private final Bitmap mBitmap;
      private final Paint mPaint;
      private final RectF mRectF;
      private final int mBitmapWidth;
      private final int mBitmapHeight;
  
      public RoundImage(Bitmap bitmap) {
          mBitmap = bitmap;
          mRectF = new RectF();
          mPaint = new Paint();
          mPaint.setAntiAlias(true);
          mPaint.setDither(true);
          final BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
          mPaint.setShader(shader);
  
          mBitmapWidth = mBitmap.getWidth();
          mBitmapHeight = mBitmap.getHeight();
      }
  
      @Override
      public void draw(Canvas canvas) {
          canvas.drawOval(mRectF, mPaint);
      }
  
      @Override
      protected void onBoundsChange(Rect bounds) {
          super.onBoundsChange(bounds);
          mRectF.set(bounds);
      }
  
      @Override
      public void setAlpha(int alpha) {
          if (mPaint.getAlpha() != alpha) {
              mPaint.setAlpha(alpha);
              invalidateSelf();
          }
      }
  
      @Override
      public void setColorFilter(ColorFilter cf) {
          mPaint.setColorFilter(cf);
      }
  
      @Override
      public int getOpacity() {
          return PixelFormat.TRANSLUCENT;
      }
  
      @Override
      public int getIntrinsicWidth() {
          return mBitmapWidth;
      }
  
      @Override
      public int getIntrinsicHeight() {
          return mBitmapHeight;
      }
  
      public void setAntiAlias(boolean aa) {
          mPaint.setAntiAlias(aa);
          invalidateSelf();
      }
  
      @Override
      public void setFilterBitmap(boolean filter) {
          mPaint.setFilterBitmap(filter);
          invalidateSelf();
      }
  
      @Override
      public void setDither(boolean dither) {
          mPaint.setDither(dither);
          invalidateSelf();
      }
  
      public Bitmap getBitmap() {
          return mBitmap;
      }
  
  }
  }
  </code></pre>