我遇到了这个恼人的问题,我有2个片段,我在Fragments getView()
组件上运行3d翻转动画。问题来到这里,当翻转完成时,我尝试将另一个视图设置为不可见,但没有任何反应。似乎动画仍然在视图中,如果视图为setAnimation(null)
或clearAnimation
,则整个视图将重置为开始状态。
我还做了一点测试,只为视图运行alpha动画,之后我再也无法更改视图可见性了。针对这类问题的任何解决方案或黑客攻击?
感谢。
以下是重现问题的小代码段。
在调用片段onCreateView
并单击按钮时运行以下代码:
AlphaAnimation fadeHalf = new AlphaAnimation(1, 0.5f);
fadeHalf.setFillAfter(true);
fadeHalf.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
getView().setVisibility(View.GONE);
});
getView().startAnimation(fadeHalf);
fadeHalf.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
getView().setVisibility(View.GONE);
});
getView().startAnimation(fadeHalf);
因此,在运行上面的代码时,整个片段视图会被转换为0.5f alpha,但什么都不做。
答案 0 :(得分:0)
不确定这是否是您所需要的,但是您可以删除视图并在将来执行相同的动画时重新添加。