好的,所以我在id
内处理了淡出内容(感谢https://stackoverflow.com/a/4570977/971392)。
我有以下功能:
public void switchView(View view) {
LayoutInflater inflater = LayoutInflater.from(getBaseContext());
View to_load = inflater.inflate(R.layout.activity_register, null, false);
RelativeLayout rl = (RelativeLayout) findViewById(R.id.content_login);
Animation fadeOutAnim = AnimationUtils.loadAnimation(LoginActivity.this, R.anim.fadeout);
rl.startAnimation(fadeOutAnim);
//rl.setVisibility(View.GONE);
//rl.removeView(view);
rl.addView(to_load);
}
它执行了所需的操作,如果我评论 rl.startAnimation(fadeOutAnim)
,那只是为了在更改视图上提供动画。
动画执行后,该功能会通过rl.addView()
更改视图,但随后会应用fadeOut
,一切都会消失。
那么,如果不删除我的内容,我怎么能使用淡出?
答案 0 :(得分:1)
您需要延迟rl.addView(to_load);
来电,直到淡出动画完成为止。这样做的方法是使用动画侦听器。
试试这样:
AnimationListener animListen = new AnimationListener() {
public void onAnimationEnd(Animation animation) {
rl.addView(to_load);
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationStart(Animation animation) {
}
});
Animation fadeOutAnim = AnimationUtils.loadAnimation(LoginActivity.this, R.anim.fadeout);
fadeOutAnim.setAnimationListener(animListen);
rl.startAnimation(fadeOutAnim);