Android 列表片段重叠
Android list Fragments overlap
我需要用另一个(也是列表)替换一个列表片段。但它们重叠。
片段是动态添加的:
fragmentManager.beginTransaction().replace(R.id.container,
CatalogFragment.newInstance(position + 1)).addToBackStack(null).commit();
我试图在 OnFragmentInteractionListener
中用 LessonFragment
替换这个 CatalogFragment
当 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 名称,然后手动将其删除。不起作用。
两个片段同时显示。
我尝试了前10个google的解决方案,并尝试使用标准的developer.android的替代解决方案。失败。
如果你知道怎么做,请帮忙。提前致谢。
P.S。告诉是否需要更多代码。
根据您的代码,您在以下布局中添加了 CatalogFragment
:R.id.container
,但您在另一个布局中替换了您的 LessonsFragment
:R.id.fragment_catalog
。我认为这就是为什么同时显示 2 个片段的原因。您应该只使用 1 个 Layout
视图来显示您只希望 1 个可见的片段。
我需要用另一个(也是列表)替换一个列表片段。但它们重叠。
片段是动态添加的:
fragmentManager.beginTransaction().replace(R.id.container,
CatalogFragment.newInstance(position + 1)).addToBackStack(null).commit();
我试图在 OnFragmentInteractionListener
中用 LessonFragment
替换这个 CatalogFragment
当 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 名称,然后手动将其删除。不起作用。
两个片段同时显示。
我尝试了前10个google的解决方案,并尝试使用标准的developer.android的替代解决方案。失败。
如果你知道怎么做,请帮忙。提前致谢。
P.S。告诉是否需要更多代码。
根据您的代码,您在以下布局中添加了 CatalogFragment
:R.id.container
,但您在另一个布局中替换了您的 LessonsFragment
:R.id.fragment_catalog
。我认为这就是为什么同时显示 2 个片段的原因。您应该只使用 1 个 Layout
视图来显示您只希望 1 个可见的片段。