我要在活动中添加一个片段,以避免声明布局xml。我正在做
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
getSupportFragmentManager().beginTransaction()
.add(android.R.id.content, new mFragment()).commit();
}
但它崩溃了:
java.lang.IllegalStateException: The specified child already has a parent.
You must call removeView() on the child's parent first.
是否有一个简短的表单来避免此错误,或者我必须恢复内容布局并删除所有视图?感谢
编辑mFragment代码:
public class mFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View result= inflater.inflate(R.layout.activity_main, container);
return result;
}
}
答案 0 :(得分:3)
在充气时尝试以下代码。
View result= inflater.inflate(R.layout.activity_main, container, false);
这将避免默认情况下将视图添加到父级。 通过使用其他方法,它将默认添加父项。因此,当您尝试动态添加它时,它将抛出上述异常。
答案 1 :(得分:1)
变化:
View result= inflater.inflate(R.layout.activity_main, container);
要:
View result= inflater.inflate(R.layout.activity_main, container, false);