react-native-navigation的迁移库

ScaleYAnimator.kt 887B

12345678910111213141516171819202122
  1. package com.reactnativenavigation.views.element.animators
  2. import android.animation.Animator
  3. import android.animation.ObjectAnimator
  4. import android.view.View
  5. import android.view.ViewGroup
  6. import com.facebook.react.views.text.ReactTextView
  7. import com.reactnativenavigation.parse.SharedElementTransitionOptions
  8. class ScaleYAnimator(from: View, to: View) : PropertyAnimatorCreator<ViewGroup>(from, to) {
  9. override fun shouldAnimateProperty(fromChild: ViewGroup, toChild: ViewGroup): Boolean {
  10. return fromChild.childCount == 0 && toChild.childCount == 0
  11. }
  12. override fun excludedViews() = listOf(ReactTextView::class.java)
  13. override fun create(options: SharedElementTransitionOptions): Animator {
  14. return ObjectAnimator
  15. .ofFloat(to, View.SCALE_Y, from.height.toFloat() / to.height, 1f)
  16. .setDuration(options.getDuration())
  17. }
  18. }