Skip to content

Most visited

Recently visited

navigation
added in version 24.1.0
belongs to Maven artifact com.android.support:appcompat-v7:27.0.0

ActionBarDrawerToggle

public class ActionBarDrawerToggle
extends Object implements DrawerLayout.DrawerListener

java.lang.Object
   ↳ android.support.v7.app.ActionBarDrawerToggle


This class provides a handy way to tie together the functionality of DrawerLayout and the framework ActionBar to implement the recommended design for navigation drawers.

To use ActionBarDrawerToggle, create one in your Activity and call through to the following methods corresponding to your Activity callbacks:

Call syncState() from your Activity's onPostCreate to synchronize the indicator with the state of the linked DrawerLayout after onRestoreInstanceState has occurred.

ActionBarDrawerToggle can be used directly as a DrawerLayout.DrawerListener, or if you are already providing your own listener, call through to each of the listener methods from your own.

You can customize the the animated toggle by defining the drawerArrowStyle in your ActionBar theme.

Summary

Nested classes

interface ActionBarDrawerToggle.Delegate

 

interface ActionBarDrawerToggle.DelegateProvider

Allows an implementing Activity to return an ActionBarDrawerToggle.Delegate to use with ActionBarDrawerToggle. 

Public constructors

ActionBarDrawerToggle(Activity activity, DrawerLayout drawerLayout, int openDrawerContentDescRes, int closeDrawerContentDescRes)

Construct a new ActionBarDrawerToggle.

ActionBarDrawerToggle(Activity activity, DrawerLayout drawerLayout, Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes)

Construct a new ActionBarDrawerToggle with a Toolbar.

Public methods

DrawerArrowDrawable getDrawerArrowDrawable()
View.OnClickListener getToolbarNavigationClickListener()

Returns the fallback listener for Navigation icon click events.

boolean isDrawerIndicatorEnabled()
boolean isDrawerSlideAnimationEnabled()
void onConfigurationChanged(Configuration newConfig)

This method should always be called by your Activity's onConfigurationChanged method.

void onDrawerClosed(View drawerView)

DrawerLayout.DrawerListener callback method.

void onDrawerOpened(View drawerView)

DrawerLayout.DrawerListener callback method.

void onDrawerSlide(View drawerView, float slideOffset)

DrawerLayout.DrawerListener callback method.

void onDrawerStateChanged(int newState)

DrawerLayout.DrawerListener callback method.

boolean onOptionsItemSelected(MenuItem item)

This method should be called by your Activity's onOptionsItemSelected method.

void setDrawerArrowDrawable(DrawerArrowDrawable drawable)

Sets the DrawerArrowDrawable that should be shown by this ActionBarDrawerToggle.

void setDrawerIndicatorEnabled(boolean enable)

Enable or disable the drawer indicator.

void setDrawerSlideAnimationEnabled(boolean enabled)

Specifies whether the drawer arrow should animate when the drawer position changes.

void setHomeAsUpIndicator(Drawable indicator)

Set the up indicator to display when the drawer indicator is not enabled.

void setHomeAsUpIndicator(int resId)

Set the up indicator to display when the drawer indicator is not enabled.

void setToolbarNavigationClickListener(View.OnClickListener onToolbarNavigationClickListener)

When DrawerToggle is constructed with a Toolbar, it sets the click listener on the Navigation icon.

void syncState()

Synchronize the state of the drawer indicator/affordance with the linked DrawerLayout.

Inherited methods

From class java.lang.Object
From interface android.support.v4.widget.DrawerLayout.DrawerListener

Public constructors

ActionBarDrawerToggle

added in version 24.1.0
ActionBarDrawerToggle (Activity activity, 
                DrawerLayout drawerLayout, 
                int openDrawerContentDescRes, 
                int closeDrawerContentDescRes)

Construct a new ActionBarDrawerToggle.

The given Activity will be linked to the specified DrawerLayout and its Actionbar's Up button will be set to a custom drawable.

This drawable shows a Hamburger icon when drawer is closed and an arrow when drawer is open. It animates between these two states as the drawer opens.

String resources must be provided to describe the open/close drawer actions for accessibility services.

Parameters
activity Activity: The Activity hosting the drawer. Should have an ActionBar.

drawerLayout DrawerLayout: The DrawerLayout to link to the given Activity's ActionBar

openDrawerContentDescRes int: A String resource to describe the "open drawer" action for accessibility

closeDrawerContentDescRes int: A String resource to describe the "close drawer" action for accessibility

ActionBarDrawerToggle

added in version 24.1.0
ActionBarDrawerToggle (Activity activity, 
                DrawerLayout drawerLayout, 
                Toolbar toolbar, 
                int openDrawerContentDescRes, 
                int closeDrawerContentDescRes)

Construct a new ActionBarDrawerToggle with a Toolbar.

The given Activity will be linked to the specified DrawerLayout and the Toolbar's navigation icon will be set to a custom drawable. Using this constructor will set Toolbar's navigation click listener to toggle the drawer when it is clicked.

This drawable shows a Hamburger icon when drawer is closed and an arrow when drawer is open. It animates between these two states as the drawer opens.

String resources must be provided to describe the open/close drawer actions for accessibility services.

Please use ActionBarDrawerToggle(Activity, DrawerLayout, int, int) if you are setting the Toolbar as the ActionBar of your activity.

Parameters
activity Activity: The Activity hosting the drawer.

drawerLayout DrawerLayout: The DrawerLayout to link to the given Activity's ActionBar

toolbar Toolbar: The toolbar to use if you have an independent Toolbar.

openDrawerContentDescRes int: A String resource to describe the "open drawer" action for accessibility

closeDrawerContentDescRes int: A String resource to describe the "close drawer" action for accessibility

Public methods

getDrawerArrowDrawable

added in version 25.1.0
DrawerArrowDrawable getDrawerArrowDrawable ()

Returns
DrawerArrowDrawable DrawerArrowDrawable that is currently shown by the ActionBarDrawerToggle.

getToolbarNavigationClickListener

added in version 24.1.0
View.OnClickListener getToolbarNavigationClickListener ()

Returns the fallback listener for Navigation icon click events.

Returns
View.OnClickListener The click listener which receives Navigation click events from Toolbar when drawer indicator is disabled.

See also:

isDrawerIndicatorEnabled

added in version 24.1.0
boolean isDrawerIndicatorEnabled ()

Returns
boolean true if the enhanced drawer indicator is enabled, false otherwise

See also:

isDrawerSlideAnimationEnabled

added in version 25.4.0
boolean isDrawerSlideAnimationEnabled ()

Returns
boolean whether the drawer slide animation is enabled

onConfigurationChanged

added in version 24.1.0
void onConfigurationChanged (Configuration newConfig)

This method should always be called by your Activity's onConfigurationChanged method.

Parameters
newConfig Configuration: The new configuration

onDrawerClosed

added in version 24.1.0
void onDrawerClosed (View drawerView)

DrawerLayout.DrawerListener callback method. If you do not use your ActionBarDrawerToggle instance directly as your DrawerLayout's listener, you should call through to this method from your own listener object.

Parameters
drawerView View: Drawer view that is now closed

onDrawerOpened

added in version 24.1.0
void onDrawerOpened (View drawerView)

DrawerLayout.DrawerListener callback method. If you do not use your ActionBarDrawerToggle instance directly as your DrawerLayout's listener, you should call through to this method from your own listener object.

Parameters
drawerView View: Drawer view that is now open

onDrawerSlide

added in version 24.1.0
void onDrawerSlide (View drawerView, 
                float slideOffset)

DrawerLayout.DrawerListener callback method. If you do not use your ActionBarDrawerToggle instance directly as your DrawerLayout's listener, you should call through to this method from your own listener object.

Parameters
drawerView View: The child view that was moved

slideOffset float: The new offset of this drawer within its range, from 0-1

onDrawerStateChanged

added in version 24.1.0
void onDrawerStateChanged (int newState)

DrawerLayout.DrawerListener callback method. If you do not use your ActionBarDrawerToggle instance directly as your DrawerLayout's listener, you should call through to this method from your own listener object.

Parameters
newState int: The new drawer motion state

onOptionsItemSelected

added in version 24.1.0
boolean onOptionsItemSelected (MenuItem item)

This method should be called by your Activity's onOptionsItemSelected method. If it returns true, your onOptionsItemSelected method should return true and skip further processing.

Parameters
item MenuItem: the MenuItem instance representing the selected menu item

Returns
boolean true if the event was handled and further processing should not occur

setDrawerArrowDrawable

added in version 25.1.0
void setDrawerArrowDrawable (DrawerArrowDrawable drawable)

Sets the DrawerArrowDrawable that should be shown by this ActionBarDrawerToggle.

Parameters
drawable DrawerArrowDrawable: DrawerArrowDrawable that should be shown by this ActionBarDrawerToggle

setDrawerIndicatorEnabled

added in version 24.1.0
void setDrawerIndicatorEnabled (boolean enable)

Enable or disable the drawer indicator. The indicator defaults to enabled.

When the indicator is disabled, the ActionBar will revert to displaying the home-as-up indicator provided by the Activity's theme in the android.R.attr.homeAsUpIndicator attribute instead of the animated drawer glyph.

Parameters
enable boolean: true to enable, false to disable

setDrawerSlideAnimationEnabled

added in version 25.4.0
void setDrawerSlideAnimationEnabled (boolean enabled)

Specifies whether the drawer arrow should animate when the drawer position changes.

Parameters
enabled boolean: if this is true then the animation will run, else it will be skipped

setHomeAsUpIndicator

added in version 24.1.0
void setHomeAsUpIndicator (Drawable indicator)

Set the up indicator to display when the drawer indicator is not enabled.

If you pass null to this method, the default drawable from the theme will be used.

Parameters
indicator Drawable: A drawable to use for the up indicator, or null to use the theme's default

See also:

setHomeAsUpIndicator

added in version 24.1.0
void setHomeAsUpIndicator (int resId)

Set the up indicator to display when the drawer indicator is not enabled.

If you pass 0 to this method, the default drawable from the theme will be used.

Parameters
resId int: Resource ID of a drawable to use for the up indicator, or 0 to use the theme's default

See also:

setToolbarNavigationClickListener

added in version 24.1.0
void setToolbarNavigationClickListener (View.OnClickListener onToolbarNavigationClickListener)

When DrawerToggle is constructed with a Toolbar, it sets the click listener on the Navigation icon. If you want to listen for clicks on the Navigation icon when DrawerToggle is disabled (setDrawerIndicatorEnabled(boolean), you should call this method with your listener and DrawerToggle will forward click events to that listener when drawer indicator is disabled.

Parameters
onToolbarNavigationClickListener View.OnClickListener

See also:

syncState

added in version 24.1.0
void syncState ()

Synchronize the state of the drawer indicator/affordance with the linked DrawerLayout.

This should be called from your Activity's onPostCreate method to synchronize after the DrawerLayout's instance state has been restored, and any other time when the state may have diverged in such a way that the ActionBarDrawerToggle was not notified. (For example, if you stop forwarding appropriate drawer events for a period of time.)

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)