Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static class ActionBarDrawerToggleEx extends android.support.v7.app.ActionBarDrawerToggle {
- public ActionBarDrawerToggleEx(Activity activity, DrawerLayout drawerLayout,
- Toolbar toolbar, @StringRes int openDrawerContentDescRes,
- @StringRes int closeDrawerContentDescRes) {
- super(activity, drawerLayout, toolbar, openDrawerContentDescRes, closeDrawerContentDescRes);
- }
- public void enableAnimation(boolean enable) {
- enableAnimation = enable;
- }
- @Override
- public void onDrawerSlide(View drawerView, float slideOffset) {
- super.onDrawerSlide(drawerView, enableAnimation ? slideOffset : 0);
- }
- private volatile boolean enableAnimation = true;
- }
- private void animateHamburgerToArrow() {
- actionBarDrawerToggle.enableAnimation(true);
- drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
- ValueAnimator anim = ValueAnimator.ofFloat(0f, 1f);
- anim.addListener(new ValueAnimator.AnimatorListener() {
- @Override
- public void onAnimationStart(Animator animator) {
- }
- @Override
- public void onAnimationEnd(Animator animator) {
- actionBarDrawerToggle.enableAnimation(false);
- arrowVisible = true;
- }
- @Override
- public void onAnimationCancel(Animator animator) {
- }
- @Override
- public void onAnimationRepeat(Animator animator) {
- }
- });
- anim.addUpdateListener(valueAnimator -> {
- float slideOffset = (Float) valueAnimator.getAnimatedValue();
- actionBarDrawerToggle.onDrawerSlide(null, slideOffset);
- });
- anim.setInterpolator(new DecelerateInterpolator());
- // You can change this duration to more closely match that of the default animation.
- anim.setDuration(300);
- anim.start();
- }
Add Comment
Please, Sign In to add comment