5

在我的应用程序中,我有一个左侧菜单,用于Fragment控制. 上面我有在新 GMAIL 中使用的新组件只在一个中被刷新。FragmentViewMainActivityFragmentViewPullToRefreshFragment

在此处输入图像描述

如果我Fragment用另一个替换它,我想停止刷新它。

getSupportFragmentManager().beginTransaction()
            .replace(R.id.fragment_container, new pullToRefreshFragment())
            .commit();

我希望FragmentManager坚持传统的FragmentLifeCycle之后,我决定停止在、或方法中的PullToRefresh组件。不幸的是,这些方法从未被调用来替换. 只有当我从左侧菜单中选择了相同的片段时,它们才会被替换。onPauseonDestroyonStoponDetach()Fragment

@Override
public void onDetach() {
    if(mPullToRefreshLayout.isRefreshing()){
        mPullToRefreshLayout.setRefreshComplete();
    }
    super.onDetach();
}

这意味着,FragmentManager除非我试图用来自同一类型的另一个片段替换片段,否则它正在缓存片段并且不会破坏它们。

我的问题是,如果在另一个片段上替换或添加新片段,片段生命周期是什么FragmentManager

如果我想在用另一个片段替换片段时停止它,我应该在哪里停止我的 PullToRerfesh 组件?

4

0 回答 0