在片段之间切换不会调用onStop方法

时间:2016-12-23 05:06:05

标签: android fragment toolbar

see my application view here

我有三个片段,我用三个Toolbar按钮切换。当我从第一个片段转到第二个片段onPause()onStop()时,方法未被调用,并且android看到该片段仍在运行,我想,但是当我从第一个片段转到第三个时,会调用它们。我希望在从第一第二之后调用它,所以当我回到第一时我可以调用onResume()函数片段,所以我可以触发一些功能。是什么导致它,我该如何解决?

2 个答案:

答案 0 :(得分:2)

Fragment的LifeCycle方法( onPause() onStop()等)取决于Activity的生命周期方法。

这意味着如果您的活动的 onPause() onStop()被调用,那么您的片段 onPause() onStop()将被调用

如果您想通知您的片段它是否可见,那么您可以使用。

在片段中覆盖此方法。

@Override
public void setUserVisibleHint(boolean isVisibleToUser) 
{
    super.setUserVisibleHint(isVisibleToUser);
    if (visible)
    {
         // Control will be here if fragment is visible.
         //Do whatever you want.
    }
}

答案 1 :(得分:1)

这些是ViewPager中的片段。所以,在停止或暂停时不会打电话 片段中有一个名为

的接口
    @Override
    public void setMenuVisibility(final boolean visible) {
        super.setMenuVisibility(visible);
        if (visible) {
            // ...
        }
    }

使用这种方法你可以了解片段的可见性 否则你可以使用setOffscreenPageLimit(value); 示例

mViewPager.setOffscreenPageLimit(1);