我创建了一个DrawerLayout
,其中第一个孩子为FrameLayout
,第二个孩子为ListView
,这将是抽屉。
现在在活动中,我使用了支持片段管理器在DrawerLayout的FrameLayout中加载片段。
错误代码是
IllegalStateException: The specified child already has a parent. Use removeView() on the child
我现在能做什么?
答案 0 :(得分:1)
你是如何夸大你的第一个片段的?它通常是由错误的构造函数膨胀引起的,所以一定要给正确的构造函数充气。
View view= inflater.inflate(R.layout.fragment_first, container, false);
return view;
答案 1 :(得分:0)
首先,考虑支持源代码,因为没有源代码就是猜测。
当崩溃日志指出 - 您尝试将已有父视图的视图添加到另一个父视图时,您无法执行此操作,视图可能只有一个ViewGroup父视图。
我猜测在片段的实例化中,当你创建FragmentTransaction时 您正在添加容器视图的ID,然后尝试将该片段添加到FrameLayout。
您添加到FragmentTransaction的ID必须是FrameLayout之一。
例如:
FragmentTransaction trans = getSupportFragmentManager().beginTransaction();
trans.add(R.id.tabcontent, fragment);
trans.commitAllowingStateLoss();
R.id.tabcontent应该是预期片段容器的id