如何检查Android应用程序中的片段是否对用户可见
我有一个应用程序,主页activity
有几个fragments
。其中一个片段侦听从Home开始的另一个活动中的事件,因此每次我从该活动返回Home时都会执行一个方法。而我想要的是只触发这些事件,并且如果片段在前台对用户可见,则执行方法
我尝试过以下方法,但似乎都不起作用:
isAdded()
和isVisible()
检查-总是在创建片段后立即返回true
,而不管片段是否对用户可见getUserVisibleHint()
-即使我仍在其他活动中,这也会再次返回true
。此外,它也被弃用,所以即使它有效,我也想寻找另一个解决方案
我已经走到了死胡同,无法找到一种实际的工作方法来检查片段是否对用户可见,而不仅仅是添加到内存中。
感谢在这方面的任何帮助!
我在尝试时终于找到了解决方案:
简单地检查isResumed()
,只有当片段处于前台并处于恢复状态时,它才会返回true。
为了安全起见,检查isVisible
,它也会在内部检查isAdded
,从而减少这种情况,所以一个简单的if-condition
:
if (isVisible() && isResumed()) {
// perform your action here
}
这对我有用!