Guest User

Untitled

a guest
Sep 21st, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.85 KB | None | 0 0
  1. private static class ActionBarDrawerToggleEx extends android.support.v7.app.ActionBarDrawerToggle {
  2. public ActionBarDrawerToggleEx(Activity activity, DrawerLayout drawerLayout,
  3. Toolbar toolbar, @StringRes int openDrawerContentDescRes,
  4. @StringRes int closeDrawerContentDescRes) {
  5. super(activity, drawerLayout, toolbar, openDrawerContentDescRes, closeDrawerContentDescRes);
  6. }
  7.  
  8. public void enableAnimation(boolean enable) {
  9. enableAnimation = enable;
  10. }
  11.  
  12. @Override
  13. public void onDrawerSlide(View drawerView, float slideOffset) {
  14. super.onDrawerSlide(drawerView, enableAnimation ? slideOffset : 0);
  15. }
  16.  
  17. private volatile boolean enableAnimation = true;
  18. }
  19.  
  20. private void animateHamburgerToArrow() {
  21. actionBarDrawerToggle.enableAnimation(true);
  22.  
  23. drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
  24.  
  25. ValueAnimator anim = ValueAnimator.ofFloat(0f, 1f);
  26. anim.addListener(new ValueAnimator.AnimatorListener() {
  27.  
  28. @Override
  29. public void onAnimationStart(Animator animator) {
  30.  
  31. }
  32.  
  33. @Override
  34. public void onAnimationEnd(Animator animator) {
  35. actionBarDrawerToggle.enableAnimation(false);
  36. arrowVisible = true;
  37. }
  38.  
  39. @Override
  40. public void onAnimationCancel(Animator animator) {
  41.  
  42. }
  43.  
  44. @Override
  45. public void onAnimationRepeat(Animator animator) {
  46.  
  47. }
  48. });
  49.  
  50. anim.addUpdateListener(valueAnimator -> {
  51. float slideOffset = (Float) valueAnimator.getAnimatedValue();
  52. actionBarDrawerToggle.onDrawerSlide(null, slideOffset);
  53. });
  54. anim.setInterpolator(new DecelerateInterpolator());
  55. // You can change this duration to more closely match that of the default animation.
  56. anim.setDuration(300);
  57. anim.start();
  58. }
Add Comment
Please, Sign In to add comment