Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

close Navigation Drawer with no animation

I am trying to close my navigation drawer after I finish certain activities immediately, without the sliding animation. I don't close it on activity start because I would like it to stay open if the user backs out of the activity. However, I cannot get it to close without a brief flickering animation as it closes itself. I have tried variations of the following code:

protected void closeDrawerImmediate() {
    mDrawerLayout.setVisibility(View.GONE);
    mDrawerLayout.closeDrawers();
    mDrawerLayout.setX(0);
    mDrawerLayout.setVisibility(View.VISIBLE);
}
like image 511
recipherus Avatar asked May 08 '15 18:05

recipherus


1 Answers

You can use the new DrawerLayout.closeDrawer(int/View, bool) methods in v24 of the support library to instantly close a drawer:

drawerLayout.closeDrawer(Gravity.LEFT, false);

If you just want to close a drawer immediately, such as when you're launching an activity from tapping on a drawer item, that is probably enough.

If you want to close the drawer on coming back to the activity, I'd set a stateful boolean like closeDrawerOnResume = true wherever is appropriate (eg. starting a new activity), and then in onResume check this boolean and close the drawer without animating if it is true.

like image 180
Tom Avatar answered Oct 16 '22 21:10

Tom