在DrawerLayout中加载片段

时间:2014-05-27 13:13:43

标签: android android-fragments

我创建了一个DrawerLayout,其中第一个孩子为FrameLayout,第二个孩子为ListView,这将是抽屉。

现在在活动中,我使用了支持片段管理器在DrawerLayout的FrameLayout中加载片段。

错误代码是

IllegalStateException: The specified child already has a parent. Use removeView() on the child

我现在能做什么?

2 个答案:

答案 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