android - 监听器不适用于 fragment 的后栈

标签 android android-fragments

我有返回堆栈的监听器:

    getFragmentManager().
    addOnBackStackChangedListener(new OnBackStackChangedListener() {

        @Override
        public void onBackStackChanged() {
            Log.d("MainActivity", "Change fragment");
        }

    });

还有两个按钮。第一个按钮的 onClick 事件:

            getFragmentManager().
            beginTransaction().
            add(R.id.root, fragm).
            commit();

第二个按钮的 onClick 事件:

            getFragmentManager().
            beginTransaction().
            remove(fragm).commit();

但是监听器不起作用。函数 onBackStackChanged 不调用。

最佳答案

猜测是因为第一笔交易还没有通过调用 addToBackStack(...) 添加到后台堆栈。所以尝试:

        getFragmentManager().
        beginTransaction().
        add(R.id.root, fragm).
        addToBackStack(null).
        commit();

关于android - 监听器不适用于 fragment 的后栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121147/

相关文章:

Android Textview 无法显示特殊字符?

android - 调用 fragment 和 Activity 之间的委托(delegate)但未触发可见性更改

java - 如何在 API 级别 17 上使用 "setTitle"

android - 从 SherlockFragment 获取资源

安卓 gradle 同步 : Could not get resource firebase-measurement-connector-impl-17. 0.4-javadoc.jar

Android fragment 隐藏在操作栏下

android - 无法移动到嵌套子导航组件中的父 fragment ?

java - Android 实时推送到网站

java - Android - 如何从 Fragment 访问父 Activity 中的 getter 方法

android - 使用带有文本和图像的自定义适配器在 ListView 中搜索