Android DrawerLayout.setDrawerLockMode() not working

mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);

is only disabling the opening drawer layout by swiping till you click navigation drawer icon keep a boolean variable

write mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); in onStart() and also write below lines of code

  @Override
    public boolean onOptionsItemSelected(android.view.MenuItem item) {

        if(!disabled)
        {
        if (item.getItemId() == android.R.id.home) {

            if (mDrawerLayout.isDrawerOpen(mDrawerLinearLayout)) {
                mDrawerLayout.closeDrawer(mDrawerLinearLayout);
            } else {
                mDrawerLayout.openDrawer(mDrawerLinearLayout);
            }
        }
        }
        return super.onOptionsItemSelected(item);
    }

this will work for sure


When you call setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) it locks opening and closing drawer only by swipes.

The drawer continues to open and close as normal after tapping the drawer carat in the action bar because your drawer will still respond to calls to openDrawer(int), closeDrawer(int) although a drawer is locked. You need to add some logic in your action bar menu button listener and not to call openDrawer(int) when you don't want it to open.

Btw, it is okay to call setDrawerLockMode(int) in onСreate