Android 列表片段重叠

Android list Fragments overlap

我需要用另一个(也是列表)替换一个列表片段。但它们重叠。

片段是动态添加的:

fragmentManager.beginTransaction().replace(R.id.container,
                    CatalogFragment.newInstance(position + 1)).addToBackStack(null).commit();

我试图在 OnFragmentInteractionListener 中用 LessonFragment 替换这个 CatalogFragmentCatalogFragment 的列表项的项目像这样点击时:

//        fragmentManager = getSupportFragmentManager(); 
//        fragmentManager.popBackStack();

    FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
    fragmentTransaction.replace(R.id.fragment_catalog, LessonsFragment.newInstance());
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();

我一直在尝试弹出 backStack 中的上一个项目。还尝试给 CatalogFragment 的 backStack 名称,然后手动将其删除。不起作用。 两个片段同时显示。

我尝试了前10个google的解决方案,并尝试使用标准的developer.android的替代解决方案。失败。

如果你知道怎么做,请帮忙。提前致谢。

P.S。告诉是否需要更多代码。

根据您的代码,您在以下布局中添加了 CatalogFragmentR.id.container,但您在另一个布局中替换了您的 LessonsFragmentR.id.fragment_catalog。我认为这就是为什么同时显示 2 个片段的原因。您应该只使用 1 个 Layout 视图来显示您只希望 1 个可见的片段。