android - Animation.setFillAfter/Before - 它们是否工作/它们是做什么用的?

标签 android android-animation

正如我的问题的标题,setFillBefore()setFillAfter() 应该做什么?

我希望 setFillAfter() 会在动画完成后永久更改 View ,但这是不正确的?

最佳答案

答案是肯定的,它们确实有效,只是可能不符合您的预期 - 例如,setFillAfter(boolean fillAfter) 的描述说

If fillAfter is true, the transformation that this animation performed will persist when it is finished.

当设置为 true 时,它​​会执行此操作。

然而,不直观的是,Android 上的动画实际上并不为 View 本身设置动画,而是为 View 的位图表示设置动画。

您可能遇到的问题是,在动画之后, View 会恢复到动画之前的状态 - setFillAftersetFillBefore 无法帮助您解决这个问题,因为在这种情况下,您真正​​想要做的是将 View 的属性设置为与动画表示相同(它们是单独的东西),并且仅 setFillAftersetFillBefore适用于动画属性,而不是 View 属性。

它们存在的原因是为了链接动画。假设您有一个平移动画,然后是淡出。如果你没有在 translate 动画上设置 setFillAfter(true) ,那么 View 会平移,跳回到原来的位置然后淡出。在翻译动画上设置 setFillAfter(true) 后, View 将移动,然后在当前位置淡出。

关于android - Animation.setFillAfter/Before - 它们是否工作/它们是做什么用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5886624/

相关文章:

android - 将 Touch 事件从 DialogFragment View 分派(dispatch)到父 Activity View

RecyclerView 中的 Android 调色板

android - 在运行 4.3/pre L 的 Android 上找不到类/NoClassDefFound 错误

android - AnimatedVectorDrawable 动画不启动

android - 在Android中添加到购物车时如何为项目制作动画

android - 使用键盘后,Delphi 和 Honeywell Android Mobile Scanner 未填充

java - 如何围绕正方形移动图像

android - 等待其他 View 动画结束

android - CardView 在 RotationY > 60 时显示伪像

android - 尝试播放声音 OnItemClick 时出错