gpt4 book ai didi

安卓 fragment : Lifecycle method *always* called when fragment is displayed?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:40:58 26 4
gpt4 key购买 nike

每当向用户显示 fragment 时,我都需要执行一些代码。

通过 API 查看我能看到的最接近的钩子(Hook)方法是 onResume。但是,从我的代码调试来看,当用户选择后退按钮返回到先前显示的 fragment 时,似乎 不会 调用 onResume。

只是为了澄清我所看到的行为:

我有一个“父” Activity ,它在 ActionBar 中配置选项卡...和 ​​2 个 fragment F1 和 F2。

用户选择一个选项卡,F1 被加载到 Activity 中。按下按钮后,用户可以导航至 F2。这不是一个单独的选项卡... F2 已交换到布局中。

添加日志语句,我可以看到当用户选择 F2 上的后退按钮时,会发生以下情况......

1) onPause() 在 F2 上被调用。2) F1 已加载到 Activity 中...但 F1 上的 onResume() 未调用

此时日志中没有错误。

知道我在这里做错了什么吗?

提前致谢

尼尔。

最佳答案

好吧,这似乎是飞行员失误。我在 Activity fragment 之间切换的原始代码是......

public void switchFragment(Fragment newFragment, String tag) {
getSupportFragmentManager()
.beginTransaction()
.add(android.R.id.content, newFragment)
.addToBackStack(tag)
.commit();
}

上面代码中对add()的调用实际上应该是对replace()的调用。似乎不替换 Activity 中的 fragment 会扰乱后退按钮的行为。

老实说,我不能 100% 确定为什么会发生这种情况。但是,进行更改后,一旦调用后退按钮,就会在目标 fragment 上调用 ​​onResume() 方法。

关于安卓 fragment : Lifecycle method *always* called when fragment is displayed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13543835/

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