Skip to content

Instantly share code, notes, and snippets.

@mandhor
Created April 6, 2015 17:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mandhor/c300c8b3bb5c040baa70 to your computer and use it in GitHub Desktop.
Save mandhor/c300c8b3bb5c040baa70 to your computer and use it in GitHub Desktop.
Android - method for animating ActionBarDrawerToggle between hamburger (drawer) and back arrow (home)
android.support.v7.app.ActionBarDrawerToggle mDrawerToggle;
android.support.v4.widget.DrawerLayout mDrawerLayout;
public void burgerArrowTransition(final boolean burgerToArrow) {
float start, end;
mDrawerToggle.setDrawerIndicatorEnabled(true);
if(burgerToArrow) {
start = 0.0f;
end = 1.0f;
} else {
start = 1.0f;
end = 0.0f;
}
ValueAnimator anim = ValueAnimator.ofFloat(start, end);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float slideOffset = (Float) valueAnimator.getAnimatedValue();
mDrawerToggle.onDrawerSlide(mDrawerLayout, slideOffset);
}
});
anim.setInterpolator(new DecelerateInterpolator());
anim.setDuration(500);
anim.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
public void onAnimationEnd(Animator animator) {
if (burgerToArrow) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
mToggle.setDrawerIndicatorEnabled(false);
}
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
});
anim.start();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment