我有一个片段[A],我通过这段代码添加了一个新片段[B]:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction()
.addToBackStack(null).**add**(R.id.activity_content, fragment).commit();
当我使用后退按钮从[B]返回[A]时,我想运行一些代码。但是,单击片段[B]上的后退按钮时,不会调用[A]上的任何回调方法。
鉴于我正在通过&#34添加片段;添加"而不是"替换,"我可以在[A]中覆盖任何回调方法吗?
答案 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.
}
});