我有一个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()
}