私はv4互換性ライブラリを使用しており、次のような新しいフラグメントに切り替えています。
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.fade_in, R.anim.fade_out);
transaction.replace(R.id.contentFragmentContainer, event.getFragmentClass().newInstance(), FRAGMENT_CONTENT);
transaction.addToBackStack(fragmentTransactionName);
transaction.commit();
ここで、ユーザーのバックスタックを新しいフラグメントトランザクションで汚染することなく、プログラムで前のフラグメントに戻りたい場合は、次を使用しますpopBackStackImmediate()
。
if (fragmentManager.popBackStackImmediate(fragmentTransactionName, 0)) {
return;
}
// apparently popping back to that fragment was not successful,
// make a regular transaction now
ポップされたフラグメントの1つにアニメーション化するために使用されたアニメーションは元に戻されませんが、これはそのままですべて正常に機能します。私もtransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
事前に使ってみましたが、通常の取引時のトランジションすら表示されず、逆方向にも表示されませんでした。
私は何が間違っているのですか?