From 2bb46eaca6f94956449261c74065668f00bd52d1 Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Sun, 3 Apr 2016 21:09:19 +0300 Subject: [PATCH] animation after saveState for hamburger fixed --- .../roboswag/components/navigation/SidebarController.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/touchin/roboswag/components/navigation/SidebarController.java b/src/main/java/ru/touchin/roboswag/components/navigation/SidebarController.java index e2785de..5aa5439 100644 --- a/src/main/java/ru/touchin/roboswag/components/navigation/SidebarController.java +++ b/src/main/java/ru/touchin/roboswag/components/navigation/SidebarController.java @@ -130,6 +130,7 @@ public class SidebarController implements FragmentManager.OnBackStackChangedList private float slidePosition; @Nullable private ValueAnimator hamburgerAnimator; + private boolean firstAnimation = true; public ActionBarDrawerToggleImpl(@NonNull final BaseActivity activity, @NonNull final DrawerLayout drawerLayout) { super(activity, drawerLayout, 0, 0); @@ -138,7 +139,7 @@ public class SidebarController implements FragmentManager.OnBackStackChangedList } public void setHamburgerState(final boolean showHamburger) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + if (!firstAnimation && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { cancelAnimation(); if (showHamburger) { hamburgerAnimator = ValueAnimator.ofFloat(slideOffset, 0f); @@ -148,9 +149,11 @@ public class SidebarController implements FragmentManager.OnBackStackChangedList hamburgerAnimator.addUpdateListener(animation -> onDrawerSlide(drawerLayout, (Float) animation.getAnimatedValue())); hamburgerAnimator.start(); } else { - onDrawerSlide(drawerLayout, showHamburger ? 0f : 1f); + slideOffset = showHamburger ? 0f : 1f; + onDrawerSlide(drawerLayout, slideOffset); } slidePosition = showHamburger ? 0f : 1f; + firstAnimation = false; } private void cancelAnimation() {