我有一个监听器:

    getFragmentManager().
    addOnBackStackChangedListener(new OnBackStackChangedListener() {

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

    });

还有两个按钮。第一个按钮的单击事件:
            getFragmentManager().
            beginTransaction().
            add(R.id.root, fragm).
            commit();

第二个按钮的单击事件:
            getFragmentManager().
            beginTransaction().
            remove(fragm).commit();

但听众不起作用。函数onbackstackchanged不调用。

最佳答案

因为第一个事务没有通过调用addToBackStack(...)添加到backbackback。所以尝试:

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

07-26 08:58