我尝试向 Activity 中添加一个 fragment ,以避免声明布局 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.
是否有一个简短的表格可以避免此错误,或者我必须恢复之前的内容布局并删除他们的所有 View ?谢谢
编辑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;
}
}
最佳答案
在膨胀时尝试以下代码。
View result= inflater.inflate(R.layout.activity_main, container, false);
这将避免默认情况下将 View 添加到父级。 使用另一种方法,它会默认添加一个父级。因此,当您尝试动态添加它时,它将抛出上述异常。
关于java - 以编程方式使用单个 fragment 初始化 FragmentActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108630/