2016-12-06 14 views
4

フラグメントがバックスタックからポップされたことを知りたかったのです。フラグメントバックスタックポップのみを聴くには?

私はしかし

private void setupChildFragmentPopListener() { 
    getChildFragmentManager().addOnBackStackChangedListener(
      new FragmentManager.OnBackStackChangedListener() { 
       @Override 
       public void onBackStackChanged() { 
        // Do whatever I want 
       } 
      }); 
} 

以下のように私のコードを持って、このコードは、ときアドオンやポップフラグメントの両方を引き起こしてしまいました。どのように私はポップの断片だけを聞く方法がありますか?または、それがポップでない場合onBackStackChanged()機能でフィルタにかける方法?

答えて

2

onBackStackChanged()が呼び出されるたびに、バックスタックエントリをカウントして比較することができます。

private void setupChildFragmentPopListener() { 
    getChildFragmentManager().addOnBackStackChangedListener(
      new FragmentManager.OnBackStackChangedListener() { 
       @Override 
       public void onBackStackChanged() { 
        int backCount = getChildFragmentManager().getBackStackEntryCount(); 
       } 
      }); 
} 
+0

ありがとうございました! – Elye

関連する問題