在替换片段时触发的事件是什么?

3
我看到,当我执行以下命令时:
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
MyFragment myFragment = new MyFragment();
fragmentTransaction.replace(R.id.parent, myFragment, "MyFragment");
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

旧的碎片上没有被调用的方法。我尝试了以下方法:

  • onStop();
  • onPause();
  • onDestroy();
  • onDetach();

没有一个被调用,为什么呢?

2个回答

1
也许你的帖子中有打字错误或者存在误解。首先,没有fragmentManager.replace()这个方法,也许你想说的是FragmentTransaction.replace()
如果是这样,请再次尝试使用onDetach()onDestroy()方法。例如,确保你有@ Override属性:
@Override
public void onDetach() {
...
}

我编辑了我的第一篇帖子,我也尝试了onDetach(),但它没有被触发(我用Log Message尝试过)。简单来说,我有一个父级和两个片段。首先我添加了MyFragment2,然后我用MyFragment2替换了它,再用MyFragment替换了MyFragment2。 当我使用fragmentTransaction.replace(R.id.parent, myFragment, "MyFragment")时,我想触发MyFragment2事件。 - helloimyourmind
@helloimyourmind,也许你应该发布MyFragment的代码。这个Android方面应该很容易解决。你需要比以前更快地回应。对我或任何人来说,记住问题是很困难的。 - The Original Android
我和楼主有相同的问题。 - Sir NIkolay Cesar The First

0

如果你要改变导航抽屉中选中的项目,我认为最好的方法是在主活动中使用onAttachFragment事件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接