我创建了一个按钮,希望在触发某个事件后它移动到屏幕底部。所以我制作了一个TranslateAnimation对象
private TranslateAnimation setupAnimation(float yOffset) {
TranslateAnimation animation = new TranslateAnimation(0, 0, 0, yOffset);
animation.setDuration(1000);
animation.setFillAfter(true);
animation.setInterpolator(new AccelerateDecelerateInterpolator());
return animation;
}
然后我将TranslateAnimation对象传递给我想要移动的视图的startAnimation()方法。
那对于我想要在视觉上实现的目标是有效的,但我注意到我无法点击它可见的位置,但我可以按下按钮的位置,并执行onClick回调。
我需要做什么,翻译后,允许用户按下新位置的按钮?
答案 0 :(得分:3)
TranslateAnimation仅移动屏幕上的像素,它不会改变Button的实际位置,它看起来就像是在移动,因此OnClick / OnTouchListener不会使用它进行动画处理。
使用ObjectAnimator或ViewPropertyAnimator来真正更改Button的属性。
以下是使用ViewPropertyAnimator开始的示例:
yourButton.animate()
.translationY(yOffset)
.setInterpolator(new AccelerateDecelerateInterpolator())
.setDuration(1000);
检查Docs以了解其他可用方法。