フラグメントを置き換えながら、Android lollipop バージョンで利用可能なスライド アニメーションを使用しています。この特定の置換では期待どおりに機能しますが、戻るボタンを押すと、最初に現在のフラグメントがポップバックされ、次に入力アニメーションの逆 (スライドアウト) が実行されます。
private void replaceContentFrameByFragment(Fragment replaceBy, String replaceByFragmentTag) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Slide slide = new Slide(Gravity.BOTTOM);
slide.setDuration(1000);
replaceBy.setEnterTransition(slide);
}
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.content_frame, replaceBy, replaceByFragmentTag);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commitAllowingStateLoss();
}
では、スライドの逆アニメーションが終了した後にのみフラグメントを強制的に戻すにはどうすればよいでしょうか? アクティビティにはメソッド finishAfterTransition() が用意されていることに気付きました。フラグメントに似たものはありますか?