gpt4 book ai didi

android - 使用 fragment 时按下后退按钮时调用 OnResume

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:00 25 4
gpt4 key购买 nike

我像这样添加第一个 fragment

            FragmentManager fm = SliderActivity.this
.getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment fragment = null;
fragment = new HomeFragment();
ft.add(R.id.content_fragment, fragment, "Home");
ft.addToBackStack("Home");
ft.commit();

和第二个 fragment 作为

            FragmentManager fm = SliderActivity.this
.getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
Fragment fragment = null;
fragment = new HomeFragment();
ft.add(R.id.content_fragment, fragment, "About");
ft.addToBackStack("About");
ft.commit();

我的问题是,如果我从 AboutFragment(第二)按下后退按钮,那么如何调用 HomeFragment 的方法(第一)

            onResume() is not fired which is creating problem

最佳答案

我发布了迟到的答案,但我认为这对其他人有用

当我们对 fragment 事务使用 add() 时,onResume() 将不会在 Source fragment 上调用。只有 Destination fragment 会得到 onResume() 回调

但使用这种方式,我们可以实现 onResume() 回调到 Source fragment :

在宿主 Activity 的 onBackPressed() 中添加这个

@Override
public void onBackPressed() {
getSupportFragmentManager().getFragments()
.get(getSupportFragmentManager().getBackStackEntryCount() - 1).onResume();
super.onBackPressed();
}

注意:确保您已使用 commit()

调用了 addToBackStack()

此代码将向 Source fragment 提供 onResume() 回调

谢谢

关于android - 使用 fragment 时按下后退按钮时调用 OnResume,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26732839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com