如何检查片段是否对用户可见



如何检查Android应用程序中的片段是否对用户可见

我有一个应用程序,主页activity有几个fragments。其中一个片段侦听从Home开始的另一个活动中的事件,因此每次我从该活动返回Home时都会执行一个方法。而我想要的是只触发这些事件,并且如果片段在前台对用户可见,则执行方法

我尝试过以下方法,但似乎都不起作用:

  1. isAdded()isVisible()检查-总是在创建片段后立即返回true,而不管片段是否对用户可见
  2. getUserVisibleHint()-即使我仍在其他活动中,这也会再次返回true。此外,它也被弃用,所以即使它有效,我也想寻找另一个解决方案

我已经走到了死胡同,无法找到一种实际的工作方法来检查片段是否对用户可见,而不仅仅是添加到内存中。

感谢在这方面的任何帮助!

我在尝试时终于找到了解决方案:

简单地检查isResumed(),只有当片段处于前台并处于恢复状态时,它才会返回true。

为了安全起见,检查isVisible,它也会在内部检查isAdded,从而减少这种情况,所以一个简单的if-condition:

if (isVisible() && isResumed()) {
// perform your action here
}

这对我有用!

最新更新