0

わかりましたので、コンテンツ内からフェードアウトする作業を行いました( https://stackoverflow.com/a/4570977/971392idに感謝します)。

私は次の機能を持っています:

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とすべてが消えます。

では、コンテンツを削除せずにフェードアウトを使用するにはどうすればよいでしょうか?

4

1 に答える 1

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);
于 2013-02-20T19:13:20.120 に答える