react-native-navigation的迁移库

YAnimator.java 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package com.reactnativenavigation.views.element.animators;
  2. import android.animation.Animator;
  3. import android.animation.ObjectAnimator;
  4. import android.graphics.Point;
  5. import android.view.View;
  6. import com.facebook.react.views.text.ReactTextView;
  7. import com.reactnativenavigation.utils.ViewUtils;
  8. import com.reactnativenavigation.views.element.Element;
  9. import java.util.Collections;
  10. import java.util.List;
  11. public class YAnimator extends PropertyAnimatorCreator<View> {
  12. private final int dy;
  13. public YAnimator(Element from, Element to) {
  14. super(from, to);
  15. final Point fromXy = ViewUtils.getLocationOnScreen(from.getChild());
  16. final Point toXy = ViewUtils.getLocationOnScreen(to.getChild());
  17. dy = fromXy.y - toXy.y;
  18. }
  19. @Override
  20. protected List<Class> excludedViews() {
  21. return Collections.singletonList(ReactTextView.class);
  22. }
  23. @Override
  24. public boolean shouldAnimateProperty(View fromChild, View toChild) {
  25. return dy != 0;
  26. }
  27. @Override
  28. public Animator create() {
  29. return ObjectAnimator.ofFloat(to.getChild(), View.TRANSLATION_Y, dy, 0);
  30. }
  31. }