2016-08-09 9 views
2

どのようにして特定のフラグメントをスタックからポップし、他のフラグメントをフラグメントから削除できますか? 例えば、これらは私の断片であり、私は正しいことを知っています。スタックから特定のフラグメントをポップして他のものを削除する

A-> B - > C - > D - >

たい背中E BにクリアCとD から、私はこれを行うことができますどのようにE?

getFragmentManager().popBackStack("tag", 0); 
ここ tag

backstackfragment Bを追加しているときに文字列がタグとして渡されます。

答えて

0

使用あなたがFragment Eにいる間、以下の関数を呼び出すことができます。

5

タグをバックスラックに追加してから、バックスタティックから目的のタグのフラグメントに到達するまでポップフラグメントすることができます。

FragmentManager fm = getFragmentManager(); 

for (int i = fm.getBackStackEntryCount() - 1; i > 0; i--) { 
    if (!fm.getBackStackEntryAt(i).getName().equalsIgnoreCase(tagname)) { 
     fm.popBackStack(); 
    } 
    else 
    { 
    break; 
    } 
} 
+0

フラグメントをホストするアクティビティから呼び出された場合、それは機能しません。 –

関連する問題