次のコードを使用して、フラグメントをアクティビティに追加しています。ユーザーがボタンをクリックすると下からスライドインし、ボタンを押すと下にスライドアウトする必要があります。これを行うには、 を実装しsetCustomAnimation(int, out, popEnter, popExit)
ます。ドキュメントによると、popExit
アニメーションはバックプレスで再生されます。
スライドの一部は正常に機能しますが、アニメーションを再生する代わりに、背面を押すとフラグメントが画面から消えますpopExit
。
addFragment
ユーザーが次にフラグメントを表示するためにボタンを押す (が呼び出される) と、スライド アウト ( popExit
) アニメーションがスライド イン アニメーションの前に再生されます。理由はありますか?
public void addFragment(Fragment){
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.addToBackStack(f.getClass().getSimpleName());
fragmentTransaction.setCustomAnimations(R.anim.slide_in_from_bottom, R.anim.slide_out_to_bottom,R.anim.slide_in_from_bottom, R.anim.slide_out_to_bottom);
fragmentTransaction.add(R.id.fragment_container, f);
fragmentTransaction.commit();
}