检查片段是否存在并重用它

Usi*_*Usi 6 java android fragment android-fragments fragmentmanager

每次用户点击列表视图中的项目时,我都会使用以下代码创建一个片段.但是以这种方式,片段是在每次用户点击时创建的.我想要的是重用旧片段(如果存在)并仅重新加载其内容(不创建新片段).

MagazineViewFragment fragment = new MagazineViewFragment();
fragment.openStream(itemSelected);

FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
        .replace(R.id.container,  fragment)
        .commit();
Run Code Online (Sandbox Code Playgroud)

我能怎么做?

reV*_*rse 17

有多种方法,可能最简单的方法是检查你当前的片段是否是FragmentXYZ的container一个实例(在你的情况下MagazineViewFragment).

Fragment mFragment = getFragmentManager().findFragmentById(R.id.container);
if (mFragment instanceof MagazineViewFragment)
    return;
Run Code Online (Sandbox Code Playgroud)