2016-05-11 11 views
0

私はほとんど関係のないものは見つかりませんでした。 onDestroyonDestroyViewsuperが呼び出される前にビューをアニメーション化するにはどうすればよいですか?onDestroyまたはOnDestroyViewの前にフラグメント内のビューをアニメ化します。

私は

@Override 
public void onDestroyView() { 
    Animation fadeOut = AnimationUtils.loadAnimation(getContext(), R.anim.fade_out_fast); 
    mBackgroundView.setAnimation(fadeOut); 
    super.onDestroyView(); 
} 

でsuper.onDestroyViewはすぐにアニメーションを停止し、この方法を試してみました。

リスナーをfadeOutに設定し、MyFrag.super.onDestroyView()onAnimationEnd()を呼び出すと、メソッド自体の中でスーパーを呼び出す必要があるため、どちらも機能しませんでした。

どうすればよいですか?前もって感謝します!

+0

私はonDestroyViewは()あなたが達成しようとしている何のために遅すぎるということだと思います。 FragmentのonPause()メソッドを試してみましたか? –

+0

はい、ありがとうございます..すでに試しても何もありません – Matteo

答えて

2

私はそれを最終的に達成しました。

作業は、コールバックインターフェイスとアクティビティのonBackPressedボタンによって行われます。活動で

public interface UiCallback { 
    void update(); 
} 

UiCallback mUiCallbackInstance = new UiCallback() { 
    public void update(/* Remove the fragment from stack here */) 
} 

@Override 
public void onBackPressed() { 
    mFragmentInstance.remove(mUiCallbackInstance) 
} 

フラグメントで:

public void remove(UiCallback callback) { 
    Animation anim = AnimationUtils.loadAnimation(...); 
    anim.setAnimationListener(new Animation.AnimationListener() { 
     @Override 
     public void onAnimationEnd(Animation animation) { 
      callback.update(); 
     } 
    }) 
    // start animation 
} 
関連する問題