我需要将一个列表片段替换为另一个列表片段(也列表)。但它们重叠。
动态添加片段:
fragmentManager.beginTransaction().replace(R.id.container,
CatalogFragment.newInstance(position + 1)).addToBackStack(null).commit();
并且当CatalogFragment
的列表项的项目点击时,我正试图将此LessonFragment
替换为OnFragmentInteractionListener
中的CatalogFragment
:
// fragmentManager = getSupportFragmentManager();
// fragmentManager.popBackStack();
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_catalog, LessonsFragment.newInstance());
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
我一直试图在backStack中弹出上一项。还试图给出CatalogFragment
的backStack名称,然后手动删除它。不行。
两个片段都会同时显示。
我已经尝试了google的前10个解决方案,并尝试使用标准 developer.android 的替代解决方案。失败。
如果你知道如何,请帮忙。提前谢谢。
P.S。告诉我们是否需要更多代码。
答案 0 :(得分:1)
在您的代码中,您在布局CatalogFragment
中添加了R.id.container
,但在另一个布局中替换了LessonsFragment
:R.id.fragment_catalog
。我认为这就是为什么2个片段同时显示的原因。您应该只使用1 Layout
视图来显示片段,只需要1个可见片段。