現在、私はこのようなフラグメントスタックを持っています。アンドロイドでバックスタック断片の位置を変更しますか?
F1 - > F2 - > F3 - > F4 - > F5
そして活動で、私は1つのボタンB1を持っています。
私の質問は、アクティビティからB1ボタンを押したときに、以下のようにフラグメントスタックを更新する方法です。
F2 - > F3 - > F4 - > F5 - > F1。
私はaddtobackstackの時点で文字列タグを使用しています。
現在、私はこのようなフラグメントスタックを持っています。アンドロイドでバックスタック断片の位置を変更しますか?
F1 - > F2 - > F3 - > F4 - > F5
そして活動で、私は1つのボタンB1を持っています。
私の質問は、アクティビティからB1ボタンを押したときに、以下のようにフラグメントスタックを更新する方法です。
F2 - > F3 - > F4 - > F5 - > F1。
私はaddtobackstackの時点で文字列タグを使用しています。
この問題は、コードでStackを使用して解決できます。フラグメントトランザクションでは、フラグメントを置き換える代わりにaddを使用する必要があります。ボタンB1を押すと、スタックからフラグメントF1をポップしなければならず、再びスタックにプッシュする必要があります。私はそれがあなたのために働くかもしれないと思った。
私は、このコードによって、これを解決:
public void fragmentInflater(Fragment newFragment) {
FragmentTransaction transaction;
FragmentManager fragmentManager = getSupportFragmentManager();
transaction = fragmentManager.beginTransaction();
Fragment oldFragment = fragmentManager.findFragmentByTag(newFragment.getClass().getName());
if (oldFragment == null) {
transaction.replace(R.id.container, newFragment, newFragment.getClass().getName());
transaction.addToBackStack(null);
} else {
transaction.replace(R.id.container, oldFragment, newFragment.getClass().getName());
}
transaction.commit();
}
は、あなたのコンテナに断片を追加するために、このメソッドを使用して、あなたが望むものを達成します。また、コンテナに重複したフラグメントを追加することも防止します。
私はこれを私のコードで試してみます。それはうまくいくように聞こえる。 –