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

时间:2012-10-29 11:55:26

标签: 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不会调用。

1 个答案:

答案 0 :(得分:7)

猜测是因为第一笔交易尚未通过拨打addToBackStack(...)添加到Backstack。所以试试:

        getFragmentManager().
        beginTransaction().
        add(R.id.root, fragm).
        addToBackStack(null).
        commit();
相关问题