正如我的问题的标题一样,方法setFillBefore()
和setFillAfter()
应该做什么?
我希望setFillAfter()
在动画完成后对 View 进行永久更改,但这是不正确的吗?
正如我的问题的标题一样,方法setFillBefore()
和setFillAfter()
应该做什么?
我希望setFillAfter()
在动画完成后对 View 进行永久更改,但这是不正确的吗?
答案是肯定的,它们确实有效,只是可能不是你所期望的——例如,描述setFillAfter(boolean fillAfter)
说
如果 fillAfter 为 true,则此动画执行的转换将在完成后持续存在。
当设置为 true 时,它会这样做。
然而,不直观的是,Android 上的动画实际上并没有为 View 本身设置动画,而是为 View 的位图表示设置动画。
您可能遇到的问题是,在动画之后,视图会恢复到动画之前的状态 -setFillAfter
并且setFillBefore
无法帮助您,因为在这种情况下,您真正想要做的是将视图的属性设置为与动画表示相同(它们是独立的事物),setFillAfter
并且setFillBefore
仅适用于动画属性,而不适用于视图属性。
它们存在的原因是为了链接动画。假设您有一个平移动画,然后是淡出。如果你没有设置setFillAfter(true)
平移动画,那么视图会平移,跳回到原来的位置,然后淡出。设置平移动画后,视图将移动,然后在setFillAfter(true)
当前位置淡出。