监听器不适用于堆栈的后端堆栈

Vla*_*mir 2 android android-fragments

我有后台的监听器:

    getFragmentManager().
    addOnBackStackChangedListener(new OnBackStackChangedListener() {

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

    });
Run Code Online (Sandbox Code Playgroud)

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

            getFragmentManager().
            beginTransaction().
            add(R.id.root, fragm).
            commit();
Run Code Online (Sandbox Code Playgroud)

事件onClick第二个按钮:

            getFragmentManager().
            beginTransaction().
            remove(fragm).commit();
Run Code Online (Sandbox Code Playgroud)

但听众不行.功能onBackStackChanged不会调用.

PJL*_*PJL 7

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

        getFragmentManager().
        beginTransaction().
        add(R.id.root, fragm).
        addToBackStack(null).
        commit();
Run Code Online (Sandbox Code Playgroud)