我有4个(比方说1,2,3和4个)片段。用户可以看到其中任何一个。在第二个片段中,我想在用户加入时做一些事情。
现在,当用户导航到第3个片段&点击后退按钮,我想运行一些代码。我的问题是当用户点击后退按钮时,onResume
没有被调用。来到第二个片段。
答案 0 :(得分:4)
我最近碰到了同样的问题,我知道为时已晚,但为了防止其他人正在寻找这个,这是我的回答:
感谢@fasteque缩小我的搜索范围。
只有在调用活动onResume()
或onPause()
时才会调用片段onResume()
或onPause()
。它们与活动紧密结合。
但是,如果你仍然希望听取活动中的变化,比如哪个片段位于顶部,并相应地触发事件,你可能想看看FragmentManager.OnBackStackChangedListener
希望这会有所帮助:)
答案 1 :(得分:1)
我遇到了同样的问题。如果要从第3个片段切换到第2个片段(使用后退按钮或其他方式),可以在第3个片段的onPause中调用第2个片段。
@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();
}
}