当Fragment处于活动/可见状态时回调

5

是否有回调函数可以让我知道用户何时从FragmentA转到FragmentB

我想在FragmentB中捕获此行为,以便我可以执行一些操作...


你搞定了吗? - Nitin Misra
3个回答

7
以下是当一个片段对用户可见时的回调函数。
@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        if (isVisibleToUser) { 
            DO YOUR OPERATIONS HERE
        }
    }

似乎在5.0.1上没有被调用。 - Clocker
2
似乎不是一种可靠的方法。我已经尝试过使用选项卡布局,但Android在调用setUserVisibleHint方法时非常不一致。 - Jaydev

0

这对我有效。

supportFragmentManager.registerFragmentLifecycleCallbacks(object : FragmentManager.FragmentLifecycleCallbacks() {
    override fun onFragmentStarted(fm: FragmentManager, f: Fragment) {
        // your logic here
    }
}, false)

如果您还想收到子片段管理器中启动的片段的警报,您可能希望将最后一个参数设置为true。


-3

你可以通过使用片段的onPause和onResume状态来进行检查。

如果你想要检查FragmentB是否处于前台,那么只需在FragmentB的onResume中打印一个toast消息即可。


5
onPauseonResume片段与对应的活动事件密切相关。它们的工作方式不是你想象的那样。当活动对应的事件被触发时,它们将在片段上触发。 - DeltaCap019

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