我遇到了这个问题,我确实在几秒钟前修复了它。所以,我认为我应该与你们分享我的解决方案。
在动画 xml 文件中,我android:fillAfter="true"
在 keep 时删除了android:fillEnabled="true"
。
注册动画监听器,然后在onAnimationEnd()
方法中,我调用View#Layout()
来改变视图的位置。
int newLeft = (int) (layoutContent.getLeft() + layoutContent.getWidth() * 0.8);
layoutContent.layout(newLeft,
layoutContent.getTop(),
newLeft + layoutContent.getMeasuredWidth(),
layoutContent.getTop() + layoutContent.getMeasuredHeight());
就我而言,动画所做的是将 layoutContent 滑动到左侧 80% 的宽度。
它工作正常。希望这可以帮助。
@Update:今天,您可以ObjectAnimator
在 android 3.0 + 上使用。如果您正在为 3.0 以下的 android 开发,您可以在 support library v.4 中找到它。ObjectAnimator
最适合动画。
@Update#2:您可以在 android api 更高版本 12 上使用 ViewPropertyAnimator。它提供了更好的性能,并修复了点击事件的问题。例子:
mButton.animate()
.setDuration(TIME)
.translationY(VALUE)
.start();