8

我有 4 个(比如说 1、2、3 和 4 个)片段。并且一次它们中的任何一个都将对用户可见。在第二个片段中,我想在用户使用它时做一些事情。现在,当用户导航到第三个片段并点击后退按钮时,我想运行一些代码。我的问题是onResume当用户点击后退按钮并进入第二个片段时没有被调用。

4

2 回答 2

4

我最近遇到了同样的问题,我知道为时已晚,但以防万一其他人正在寻找这个,这是我的答案:

感谢@fasteque 缩小了我的搜索范围。

只有在调用活动或时才会调用片段onResume()或。它们与 Activity 紧密耦合。onPause()onResume()onPause()

但是如果你仍然想听你的活动中的变化,比如哪个片段在上面,并相应地触发事件,你可能想看看FragmentManager.OnBackStackChangedListener

希望这可以帮助 :)

于 2014-02-20T13:44:04.693 回答
1

我有同样的问题。如果您想从第三个片段切换到第二个片段(使用后退按钮或其他方式),您可以在第三个片段的 onPause 中调用第二个片段。

@Override
public void onPause() {
    super.onPause();

     Fragment2 fragment2= (Fragment2) getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment2);
     if (fragment2!= null) {
         //you can call any function from fragment2
         fragment2.SomeFunctions();
     }
}
于 2017-10-03T12:11:41.323 回答