Skip to content

Commit

Permalink
Change default interpolation of TimingTransition to AccelerateDecelerate
Browse files Browse the repository at this point in the history
Summary: LinearInterpolation doesn't produce natural curve that occur in real world where you'd expect easing in and out when moving items. Moreover, default interpolator in Android animations is also non-linear interpolator. Switching default of Timing animator to AccelerateDecelerateInterpolator like in default android animations.

Reviewed By: astreet

Differential Revision: D8478562

fbshipit-source-id: 91f421a0da626bd4391848bf1515296fcc201580
  • Loading branch information
muraziz authored and facebook-github-bot committed Jun 18, 2018
1 parent f0f490e commit 4f11da0
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions litho-core/src/main/java/com/facebook/litho/Transition.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package com.facebook.litho;

import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Interpolator;
import com.facebook.infer.annotation.ThreadSafe;
import com.facebook.litho.animation.AnimatedProperties;
Expand Down Expand Up @@ -516,12 +517,14 @@ public TransitionAnimationBinding createAnimation(PropertyAnimation propertyAnim
*/
public static class TimingTransitionAnimator implements Transition.TransitionAnimator {

private static final Interpolator DEFAULT_INTERPOLATOR = new AccelerateDecelerateInterpolator();

final int mDurationMs;
final Interpolator mInterpolator;

/** Create timing animator with linear interpolation. */
/** Create timing animator with accelerate decelerate interpolation. */
public TimingTransitionAnimator(int durationMs) {
this(durationMs, null);
this(durationMs, DEFAULT_INTERPOLATOR);
}

/** Create timing animator with custom Android interpolator. */
Expand Down

0 comments on commit 4f11da0

Please sign in to comment.