react-native-navigation的迁移库

ScaleXAnimator.kt 911B

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 ScaleXAnimator(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(): List<Class<*>> = listOf<Class<*>>(ReactTextView::class.java)
  13. override fun create(options: SharedElementTransitionOptions): Animator {
  14. return ObjectAnimator
  15. .ofFloat(to, View.SCALE_X, from.width.toFloat() / to.width, 1f)
  16. .setDuration(options.getDuration())
  17. }
  18. }