android - 如何只听 Fragment Backstack Pop?

标签 android android-fragments fragmentmanager

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

我的代码如下

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

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

最佳答案

您可以对返回堆栈条目进行计数,并在每次调用 onBackStackChanged() 时进行比较。

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

关于android - 如何只听 Fragment Backstack Pop?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40985631/

相关文章:

android - 单 Activity 架构和多个 fragment (嵌套 fragment )的后退按钮问题

java - 用新堆栈替换 fragment 返回堆栈

java.lang.IllegalStateException : FragmentManager has been destroyed

android - FragmentPagerAdapter 已弃用

android - 在 Fragment 中创建 OptionMenu

android - 检测是否为移动应用中拍摄的照片

android - 如何从我的 Android 应用程序访问新的 Gmail API?

android - 在显示对话框时,我得到 "Can not perform this action after onSaveInstanceState"

java - android.view.InflateException 错误

android - 什么时候使用 FragmentManager.isDestroyed()?为了避免 IllegalStateException?