目前,我有一个包含4个片段的选项卡布局设置。我有一个片段,最初是在片段之间切换时出现重复的id错误。我设法通过在下面应用以下代码解决了该问题,但是现在我在切换时收到尚未创建内容 View 的消息。
public class contactus2 extends Fragment {
private static View view;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null)
parent.removeView(view);
}
try {
view = inflater.inflate(R.layout.contactus2, container, false);
} catch (InflateException e) {
Log.i("Inflate", "View Hidden");
}
return view;
}
}
最佳答案
onCreateView()
永远不要引用静态View对象。循环浏览应用程序时,Android将拆除并重建片段的 View 。因此,您应该始终在onCreateView内部扩大一个新 View 。现在,您的应用程序将尝试将 View 重用于多个片段。
像这样:
public class contactus2 extends Fragment {
private View rootView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.contactus2, container, false);
return rootView;
}
}
基本上,删除对片段的 View 引用的静态分配。