我在Stack Overflow上进行了研究,但似乎没有找到解决方案。
我有一个MainActivity和几个Fragment,我正在使用“replace”方法执行Fragment事务,并将相应的Fragment添加到backstack中,但我的问题是当我从back stack中弹出它时,我想要检查一些内容,看看哪个回调被调用。从back stack中弹出时不会调用onResume()方法。
求助!
我在Stack Overflow上进行了研究,但似乎没有找到解决方案。
我有一个MainActivity和几个Fragment,我正在使用“replace”方法执行Fragment事务,并将相应的Fragment添加到backstack中,但我的问题是当我从back stack中弹出它时,我想要检查一些内容,看看哪个回调被调用。从back stack中弹出时不会调用onResume()方法。
求助!
只需按照以下步骤进行:
getSupportFragmentManager().addOnBackStackChangedListener(new OnBackStackChangedListener()
{
public void onBackStackChanged()
{
// Your logic here
}
});
每当后退堆栈发生更改时,都会调用此回调函数 - 即使添加了一个片段也是如此。如果您想知道何时删除了一个片段,请添加以下逻辑
Fragment someFragment = (Fragment)getSupportFragmentManager().findFragmentById(R.id.fragmentItem);
if (someFragment == null) {
// this fragment was removed from back stack
}