如何只听 Fragment Backstack Pop?

Ely*_*lye 6 android android-fragments fragmentmanager

我想知道 Fragment 何时从后台弹出。

我的代码如下

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

但是,此代码在添加和弹出片段时都被触发。我怎么能有办法只听流行片段?或者在onBackStackChanged()函数中过滤掉它不是流行的方法?

Dis*_*two 5

您可以保留 backstack 条目的计数,并在每次onBackStackChanged()调用时进行比较。

private void setupChildFragmentPopListener() {
    getChildFragmentManager().addOnBackStackChangedListener(
            new FragmentManager.OnBackStackChangedListener() {
                @Override
                public void onBackStackChanged() {
                    int backCount = getChildFragmentManager().getBackStackEntryCount();
                }
            });
}
Run Code Online (Sandbox Code Playgroud)