我能够让动画在模拟器上运行 - 但是我的问题是它动画了一秒钟,然后在完成动画后立即回到原来的位置。我怎么能阻止这种情况发生。
这是我为对象设置动画的方式:
private void doAnimations() {
logo.setVisibility(View.INVISIBLE);
logo.setBackgroundDrawable(null);
logo.setMaxHeight((logo.getHeight()/2));
Animation animation = new TranslateAnimation(0, 0, 0, -200);
usernameEdit.startAnimation(animation);
}
感谢任何帮助。感谢。
答案 0 :(得分:1)
我怎样才能阻止这种情况发生。
在动画上注册一个监听器。然后,当听众被告知动画完成时,对实际布局做一些事情以使您的更改永久化。
答案 1 :(得分:1)
虽然animation.setFillAfter(true);
是一个好的开始,但根据我的经验,我已经看到,虽然通过这种方法,可见视图确实转移到动画停止的地方,但仍然控制仍然保持在原来的位置...... / p>
为了说明它,让我们说你在位置A有一个按钮“btn1”,动画在位置B处停止,现在当你设置animation.setFillAfter(true);
时,动画停止后,视图将在位置B,但点击它不会工作。虽然如果你点击位置A(没有任何东西可见),btn1的onClickListener方法将被调用...
因此,正如我之前所说,视图显示(位置B)但不显示控件(保留在位置A)...所以你最好选择马克(CommonsWare)设置动画监听器的方法并制作动画停止时所需的更改......
希望这有帮助!