0

2 つのフラグメントがあり、フラグメントgetView()コンポーネントで 3D フリップ アニメーションを実行しているこの厄介な問題に遭遇しました。ここで問題が発生します。フリップが完了したら、別のビューを非表示に設定しようとしましたが、何も起こりません。ビューのアニメーションがまだオンになっているようです.IsetAnimation(null)またはビューの場合clearAnimation、ビュー全体がリセットされて開始状態になります。

ビューのアルファアニメーションを実行するだけで、少しテストを行いました。その後、ビューの可視性を変更できなくなりました。この種の問題に対する解決策またはハックはありますか?

ありがとう。

問題を再現するための小さなコード スニペットを次に示します。

FragmentonCreateViewが呼び出されてボタンがクリックされると、次のコードが実行されます。

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);

したがって、上記のコードを実行すると、フラグメント ビュー全体が 0.5f アルファに変換されますが、setVisilibity(View.GONE)何もしません。

4

1 に答える 1

0

これが必要かどうかはわかりませんが、おそらくビューを削除して、将来同じアニメーションを行うときに再度追加することができます.

于 2012-12-27T21:24:54.497 に答える