SlidingMenu(https://github.com/jfeinstein10/SlidingMenu)を含むアクティビティがあり、そこに3つのオプションがあります。それらをA、B1、C1と呼ぶことにしましょう。これらは、アクティビティに表示されるフラグメントに対応します。 SlidingMenuから別のオプションを選択すると、現在のフラグメントをFragmentManagerを使って新しいフラグメントに置き換えます。ポップすることなくAndroidフラグメントのバックスタックをクリアしますか?
フラグメントB1から、他の2つに行くことができます。それらをB2とB3と呼ぶことができます。ここでは、Backキーを使用してB2 - > B1またはB3 - > B1にしたいので、transaction.addToBackStack(null)を呼び出します。 B2またはB3のときにSlidingMenuからオプションを選択すると、バックスタックをクリアしたいので、この質問の中で示唆しているようにコードを使用します。Clear back stack using fragmentsは、明らかになるまでpopBackStack()を呼び出します。
これまでのところとても良いです。
フラグメントC1から、フラグメントC2に移動できます。 C1/C2がマスター/詳細設計のよりいるように私はC2は、右およびその逆からスライドするようにC1が左にスライドアウトスライドアニメーションを追加する
fragmentTransaction.setCustomAnimations(R.animator.slide_in_from_right,
R.animator.slide_out_to_left, R.animator.slide_in_from_left,
R.animator.slide_out_to_right);
を使用します。 C2を押しながら戻るキーを押すとC1に戻り、逆のアニメーションが表示され、すべてが良好です。
しかし
あなたはSlidingMenuからAまたはB1を選択し、我々は戻ってスタックからC1を取り除くために()をpopBackStack場合、それは奇妙に見えた、右に出C2をスライド。私がしたいのは、アニメーションを実行せずにバックスタックをクリアすることですが、その方法を見つけることはできません。代わりにpopBackStackImmediate()を呼び出そうとしましたが、違いはありません。
代わりに、私はaddToBackStackを呼び出すことを避けることができ、代わりに手動でActivity.onBackPressed()を介してBackキーを押してユーザーを処理することができますが、おそらく私は見ることができませんソリューションがありますか?
それは私が必要とするものとまったく同じようです。ありがとう! –
@JonathanCaryl素晴らしい! – TronicZomB
サポートライブラリv23.1.1で動作しません –