您的位置:首页 > 编程语言 > Java开发

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView

2016-08-25 12:04 531 查看

添加frament到ViewPager中出现 java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child’s parent first 解决办法。

异常问题原因: 子View已经添加到了一个ViewGroup中不能再将其添加到另一个ViewGroup。(一个孩子不能有两个爹)

错误代码

主要是因为我在自定义的MyFragment中将当前对象的视图添加到了MyFragment中的ViewGroup中,所以在MyFragmentPagerAdapter中不能再:

public class MyFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment, container, false);

//接收值
Bundle bundle=getArguments();
int page = bundle.getInt("page");
TextView tv=(TextView) view.findViewById(R.id.tv);
switch (page) {
case 0:
tv.setText("首页");
break;
case 1:
tv.setText("联系人");
break;
case 2:
tv.setText("发现");
break;
case 3:
tv.setText("用户");
break;
}

//不能将Fragmeng添加到container中,这样设置到pageradapter中时就会报错
container.addView(view);
return view;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  异常 viewpager fragment
相关文章推荐