动画不会在 postDelayed 运行() 中被调用
Animation doesn't get called inside postDelayed run()
我有一个线性布局,我希望它在使用 Handler 延迟 3 秒后进行动画处理。
过了3秒,连动画都没有执行,也没有进入AnimationListener的方法
这是我的做法:
loginBox.setVisibility(View.GONE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Animation animTranslate = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.translate);
animTranslate.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
loginBox.setVisibility(View.VISIBLE);
Animation animFade = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade);
loginBox.startAnimation(animFade);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
btnContinue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
finish();
}
});
}
}, 3000);
当我单击 btnContinue
时,运行() 方法工作正常。
我怎样才能让它发挥作用?
你忘了打电话
loginBox.startAnimation(animTranslate)
并且您可能希望 loginBox.setVisibility(View.VISIBLE);
在开始 TranslateAnimation
之前
我有一个线性布局,我希望它在使用 Handler 延迟 3 秒后进行动画处理。
过了3秒,连动画都没有执行,也没有进入AnimationListener的方法
这是我的做法:
loginBox.setVisibility(View.GONE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Animation animTranslate = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.translate);
animTranslate.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
loginBox.setVisibility(View.VISIBLE);
Animation animFade = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fade);
loginBox.startAnimation(animFade);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
btnContinue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
finish();
}
});
}
}, 3000);
当我单击 btnContinue
时,运行() 方法工作正常。
我怎样才能让它发挥作用?
你忘了打电话
loginBox.startAnimation(animTranslate)
并且您可能希望 loginBox.setVisibility(View.VISIBLE);
在开始 TranslateAnimation