【发布时间】:2020-01-28 19:12:35
【问题描述】:
我想在使用动画单击扩展 fab 时隐藏它。我想将按钮从原始高度和宽度缩小到 0/gone。它消失在角落,但动画在中间滞后。
private fun animateHideScoreFab(){
val animX = ValueAnimator.ofInt(editScoreFab.measuredWidth, 0).apply {
duration = 1000
}
val animY = ValueAnimator.ofInt(editScoreFab.measuredHeight, 0).apply {
duration = 1000
}
animX.addUpdateListener {
val value = it.animatedValue as Int
editScoreFab.layoutParams.width = value
editScoreFab.requestLayout()
}
animY.addUpdateListener {
val value = it.animatedValue as Int
editScoreFab.layoutParams.height = value
}
AnimatorSet().apply {
this.interpolator = AccelerateDecelerateInterpolator()
play(animX).with(animY)
start()
}
}
结果:
【问题讨论】:
-
在我看来,动画看起来“不流畅”也是因为文本在可绘制对象之前消失了。除此之外,drawable 的 padding 也减少了,因此 drawable 的移动速度比 Button 边缘慢。也许一个人可以分两步完成?先淡出文字和drawable再缩小Button?
标签: android animation material-design