从另一个添加的片段返回片段时调用了哪个回调方法?

时间:2016-02-18 18:31:28

标签: android android-fragments

我有一个片段[A],我通过这段代码添加了一个新片段[B]:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction()
                .addToBackStack(null).**add**(R.id.activity_content, fragment).commit();

当我使用后退按钮从[B]返回[A]时,我想运行一些代码。但是,单击片段[B]上的后退按钮时,不会调用[A]上的任何回调方法。

鉴于我正在通过&#34添加片段;添加"而不是"替换,"我可以在[A]中覆盖任何回调方法吗?

1 个答案:

答案 0 :(得分:0)

对于这种情况,您应该添加OnBackstackChangedListener

// Add this after the transaction...
getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener() {
    @Override
    public void onBackStackChanged() {
        // Do your logic here. Probably want to remove the
        // listener at this point too.
    }
});