[英]Calling animation in custom view's Kotlin class from Java activity class
我有一個 Java Activity 類,其中包含一個用 Kotlin 編寫的自定義視圖
@BindView(R.id.icon)
Icon icon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
icon.showIcon();
}
和自定義視圖類:
fun showIcon() {
visibility = View.VISIBLE
rotate()
}
fun rotate() {
ValueAnimator.ofFloat(0f, 360f).apply {
interpolator = AccelerateDecelerateInterpolator()
startDelay = 1000
duration = 1400
addUpdateListener {
val value = it.animatedValue as Float
squatIV.rotation = value
Timber.d(iconIV.rotation.toString())
}
start()
}
綁定工作正常,創建時可以看到活動上的圖標。 甚至動畫也會運行,因為它記錄了組件圖像視圖的旋轉值。 但是在屏幕上,動畫沒有播放。
有什么具體原因嗎? 你有沒有遇到過這個問題?
更新:您可以在下面看到虛擬活動頁面,並且自定義視圖需要動畫旋轉。 經過一些后端檢查后,自定義視圖變為可見並旋轉動畫觸發器。
試試這個解決方案:
fun rotate() {
ValueAnimator.ofFloat(0f, 360f).apply {
interpolator = AccelerateDecelerateInterpolator()
startDelay = 1000
duration = 1400
addUpdateListener {
val value = it.animatedValue as Float
squatIV.rotation = value
Timber.d(iconIV.rotation.toString())
invalidate() // must be!
requestLayout() // check if works without it
}
start()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.