@@ -209,6 +209,14 @@ public Drawer addDrawerItems(IDrawerItem... drawerItems) {
209209 return this ;
210210 }
211211
212+ // close drawer on click
213+ protected boolean mCloseOnClick = true ;
214+
215+ public Drawer withCloseOnClick (boolean closeOnClick ) {
216+ this .mCloseOnClick = closeOnClick ;
217+ return this ;
218+ }
219+
212220 // onDrawerItemClickListeners
213221 protected OnDrawerItemClickListener mOnDrawerItemClickListener ;
214222
@@ -339,18 +347,21 @@ public Result build() {
339347 }
340348
341349 // add the onDrawerItemClickListener if set
342- if ( mOnDrawerItemClickListener != null ) {
343- mListView . setOnItemClickListener ( new AdapterView . OnItemClickListener () {
344- @ Override
345- public void onItemClick ( AdapterView <?> parent , View view , int position , long id ) {
350+ mListView . setOnItemClickListener ( new AdapterView . OnItemClickListener ( ) {
351+ @ Override
352+ public void onItemClick ( AdapterView <?> parent , View view , int position , long id ) {
353+ if ( mOnDrawerItemClickListener != null ) {
346354 if (mDrawerItems != null && mDrawerItems .size () > position ) {
347355 mOnDrawerItemClickListener .onItemClick (parent , view , position , id , mDrawerItems .get (position ));
348356 } else {
349357 mOnDrawerItemClickListener .onItemClick (parent , view , position , id , null );
350358 }
351359 }
352- });
353- }
360+ if (mCloseOnClick ) {
361+ mDrawerLayout .closeDrawers ();
362+ }
363+ }
364+ });
354365
355366 // add the onDrawerItemLongClickListener if set
356367 if (mOnDrawerItemLongClickListener != null ) {
0 commit comments